Download - sql join algorithm
![Page 1: sql join algorithm](https://reader030.vdocuments.net/reader030/viewer/2022021214/577d2f141a28ab4e1eb0bd42/html5/thumbnails/1.jpg)
8/7/2019 sql join algorithm
http://slidepdf.com/reader/full/sql-join-algorithm 1/24
Steps in Query Processing
1. Translation• check SQL syntax• check existence of relations and attributes• replace views by their denitions• generate internal query representation
2. Optimization• consider alternative plans for processing the query• select an efcient plan
3. Processing• execute the plan
4. Data Delivery
![Page 2: sql join algorithm](https://reader030.vdocuments.net/reader030/viewer/2022021214/577d2f141a28ab4e1eb0bd42/html5/thumbnails/2.jpg)
8/7/2019 sql join algorithm
http://slidepdf.com/reader/full/sql-join-algorithm 2/24
![Page 3: sql join algorithm](https://reader030.vdocuments.net/reader030/viewer/2022021214/577d2f141a28ab4e1eb0bd42/html5/thumbnails/3.jpg)
8/7/2019 sql join algorithm
http://slidepdf.com/reader/full/sql-join-algorithm 3/24
An Execution Plan
1. Scan the Employee table, select all tuples for whichWorkDept starts with ’D’, call the result R 1 .2. Join R 1 and Department, eliminate attributes other
than DeptNo, Deptname, and Salary. Call the resultR 2 . This may involve:
•
sorting R 1 on WorkDept• sorting Department on Deptno• joining the two sorted relations to produce R 2
3. Group the tuples of R 2 . Call the result R 3 . This mayinvolve:
• sorting R 2 on DeptNo and Deptname• group tuples with identical values of DeptNo and
Deptname• count tuples in each group, and add their Salaries
4. Scan R 3 , select all tuples with sum (Salary) > 1000000
![Page 4: sql join algorithm](https://reader030.vdocuments.net/reader030/viewer/2022021214/577d2f141a28ab4e1eb0bd42/html5/thumbnails/4.jpg)
8/7/2019 sql join algorithm
http://slidepdf.com/reader/full/sql-join-algorithm 4/24
Pictorial Access Plan
Join
Grouping
Select
(Sum(Salary) > 100)
Project
Select
R1
R3
R2
(DeptNo, Deptname)
(DeptNo,Deptname,Salary)
(DeptNo = WorkDept)
(DeptNo LIKE ’D%’)
Department Employee
![Page 5: sql join algorithm](https://reader030.vdocuments.net/reader030/viewer/2022021214/577d2f141a28ab4e1eb0bd42/html5/thumbnails/5.jpg)
8/7/2019 sql join algorithm
http://slidepdf.com/reader/full/sql-join-algorithm 5/24
Pipelined Plans and Iterators
• In a pipelined plan, each tuples stream from oneoperator to another.
• Pipelining allows for parallel execution of operators,and avoids unnecessary materialization ofintermediate results. (Sometimes materialization maybe necessary...)
• Iterators are a common model for plan operators:• every operator is an iterator• an iterator provides the following interface: Open ,
GetNext , and Close• each iterator implements its interface, using calls to
the interface functions of its child (or children)
![Page 6: sql join algorithm](https://reader030.vdocuments.net/reader030/viewer/2022021214/577d2f141a28ab4e1eb0bd42/html5/thumbnails/6.jpg)
8/7/2019 sql join algorithm
http://slidepdf.com/reader/full/sql-join-algorithm 6/24
DB2 Access Plan
FILTER (having)|
GRPBY (deptno,deptname)|
MSJOIN
/ \TBSCAN FILTER
| |(deptno) SORT TBSCAN
| |
(like D%) TBSCAN SORT (workdept)| |
DEPARTMENT TBSCAN (like D%)|
EMPLOYEE
![Page 7: sql join algorithm](https://reader030.vdocuments.net/reader030/viewer/2022021214/577d2f141a28ab4e1eb0bd42/html5/thumbnails/7.jpg)
8/7/2019 sql join algorithm
http://slidepdf.com/reader/full/sql-join-algorithm 7/24
DB2 Access Plan with Index
FILTER
|GRPBY
|TBSCAN
|SORT
|NLJOIN
/ \
TBSCAN FETCH| / \EMPLOYEE IXSCAN DEPARTMENT
|DEPTNOIND
![Page 8: sql join algorithm](https://reader030.vdocuments.net/reader030/viewer/2022021214/577d2f141a28ab4e1eb0bd42/html5/thumbnails/8.jpg)
8/7/2019 sql join algorithm
http://slidepdf.com/reader/full/sql-join-algorithm 8/24
Plan Structures
R1 R2
R3
R4
R1 R2 R3 R4
R4
R3
R2 R1
Left−Deep Ri gh t −Dee p Bushy
![Page 9: sql join algorithm](https://reader030.vdocuments.net/reader030/viewer/2022021214/577d2f141a28ab4e1eb0bd42/html5/thumbnails/9.jpg)
8/7/2019 sql join algorithm
http://slidepdf.com/reader/full/sql-join-algorithm 9/24
Some Basic Query Processing Operations
• Data Access and Filtering• Index scans• Table scans
• Projection•
Joining• nested loop join• hash join• sort-merge join• and others . . .
•
Sorting• Grouping and Duplicate Elimination
• by sorting• by hashing
![Page 10: sql join algorithm](https://reader030.vdocuments.net/reader030/viewer/2022021214/577d2f141a28ab4e1eb0bd42/html5/thumbnails/10.jpg)
8/7/2019 sql join algorithm
http://slidepdf.com/reader/full/sql-join-algorithm 10/24
Joining Relations
select DeptName, LastNamefrom Department, Employeewhere DeptNo = WorkDept
Conceptually, a nested-loop join works like this:
foreach tuple d in Department doforeach tuple e in Employee do
if d.DeptNo = e.WorkDept thenoutput d,e
endend
![Page 11: sql join algorithm](https://reader030.vdocuments.net/reader030/viewer/2022021214/577d2f141a28ab4e1eb0bd42/html5/thumbnails/11.jpg)
8/7/2019 sql join algorithm
http://slidepdf.com/reader/full/sql-join-algorithm 11/24
Block Nested Loop Join
select DeptName, LastNamefrom Department, Employeewhere DeptNo = WorkDept
Process outer relation a chunk at a time
foreach chunk C of Departmentforeach tuple e in Employee do
foreach tuple d in C
if d.DeptNo = e.WorkDept thenoutput d,eend
endend
![Page 12: sql join algorithm](https://reader030.vdocuments.net/reader030/viewer/2022021214/577d2f141a28ab4e1eb0bd42/html5/thumbnails/12.jpg)
8/7/2019 sql join algorithm
http://slidepdf.com/reader/full/sql-join-algorithm 12/24
Other Techniques for Join• If there is an index on the WorkDept attribute of the
Employee relation, an index join can be used:foreach tuple d in Department do
use the index to find Employee tuples wherefor each such tuple e
output d,eend
• Examples of other join techniques:• Sort-Merge Join : sort the tuples of Employee on
WorkDept and the tuples of Department of DeptNo,then merge the sorted relations.
• Hash Join : assign each tuple of Employee and ofDepartment to a “bucket” by applying a hashfunction to its WorkDept (DeptNo) value. Within eachbucket, look for Employee/Department tuple pairs for
which WorkDept = DeptNo.
![Page 13: sql join algorithm](https://reader030.vdocuments.net/reader030/viewer/2022021214/577d2f141a28ab4e1eb0bd42/html5/thumbnails/13.jpg)
8/7/2019 sql join algorithm
http://slidepdf.com/reader/full/sql-join-algorithm 13/24
Hash Join Example
Hash Join Operator
disk
memory
result
outer inner
6,1,8,1,2,8,3,3,4,6,6,8,2,8,9,3 8,2,2,3,4,5,5,6,5,7,7,2,3,7,8,5
![Page 14: sql join algorithm](https://reader030.vdocuments.net/reader030/viewer/2022021214/577d2f141a28ab4e1eb0bd42/html5/thumbnails/14.jpg)
8/7/2019 sql join algorithm
http://slidepdf.com/reader/full/sql-join-algorithm 14/24
Hash Join Example (cont’d)
Hash Join Operator
disk
memory
result
outer inner
6,1,8,1,2,8,3,3,4,6,6,8,2,8,9,3
84
8
5,5,5,5
2,2,6,2
3,7,7,3,7
8,2,2,3,4,5,5,6,5,7,7,2,3,7,8,5
![Page 15: sql join algorithm](https://reader030.vdocuments.net/reader030/viewer/2022021214/577d2f141a28ab4e1eb0bd42/html5/thumbnails/15.jpg)
8/7/2019 sql join algorithm
http://slidepdf.com/reader/full/sql-join-algorithm 15/24
Hash Join Example (cont’d)
Hash Join Operator
disk
memory
result
outer inner
84
8
5,5,5,52,2,6,2
3,7,7,3,7
(8,8),(8,8),(8,8),(8,8),(4,4),(8,8),(8,8),(8,8),(8,8)
1,1,9
6,2,6,6,23,3,3
6,1,8,1,2,8,3,3,4,6,6,8,2,8,9,3
![Page 16: sql join algorithm](https://reader030.vdocuments.net/reader030/viewer/2022021214/577d2f141a28ab4e1eb0bd42/html5/thumbnails/16.jpg)
8/7/2019 sql join algorithm
http://slidepdf.com/reader/full/sql-join-algorithm 16/24
Hash Join Example (cont’d)
Hash Join Operator
disk
memory
result
outer inner
5,5,5,5
2,2,6,2
3,7,7,3,7
1,1,9
6,2,6,6,23,3,3
55
55
![Page 17: sql join algorithm](https://reader030.vdocuments.net/reader030/viewer/2022021214/577d2f141a28ab4e1eb0bd42/html5/thumbnails/17.jpg)
8/7/2019 sql join algorithm
http://slidepdf.com/reader/full/sql-join-algorithm 17/24
Hash Join Example (cont’d)
Hash Join Operator
disk
memory
result
outer inner
2,2,6,2
3,7,7,3,7
1,1,9
6,2,6,6,2
3,3,3
55
55
![Page 18: sql join algorithm](https://reader030.vdocuments.net/reader030/viewer/2022021214/577d2f141a28ab4e1eb0bd42/html5/thumbnails/18.jpg)
8/7/2019 sql join algorithm
http://slidepdf.com/reader/full/sql-join-algorithm 18/24
Hash Join Example (cont’d)
Hash Join Operator
disk
memory
result
outer inner
2,2,6,2
3,7,7,3,7
6,2,6,6,2
3,3,3
2 26
2
(6,6),(2,2),(2,2),(2,2),(6,6),(6,6),(2,2),(2,2),(2,2)
![Page 19: sql join algorithm](https://reader030.vdocuments.net/reader030/viewer/2022021214/577d2f141a28ab4e1eb0bd42/html5/thumbnails/19.jpg)
8/7/2019 sql join algorithm
http://slidepdf.com/reader/full/sql-join-algorithm 19/24
Hash Join Example (cont’d)
Hash Join Operator
disk
memory
result
outer inner
3,7,7,3,7
3,3,3
37
7
37
(3,3),(3,3),(3,3),(3,3),(3,3),(3,3)
![Page 20: sql join algorithm](https://reader030.vdocuments.net/reader030/viewer/2022021214/577d2f141a28ab4e1eb0bd42/html5/thumbnails/20.jpg)
8/7/2019 sql join algorithm
http://slidepdf.com/reader/full/sql-join-algorithm 20/24
External Merge Sort: Run Formation
disk
disk
memory
![Page 21: sql join algorithm](https://reader030.vdocuments.net/reader030/viewer/2022021214/577d2f141a28ab4e1eb0bd42/html5/thumbnails/21.jpg)
8/7/2019 sql join algorithm
http://slidepdf.com/reader/full/sql-join-algorithm 21/24
External Merge Sort: Run Formation (cont’d)
disk
disk
memory
![Page 22: sql join algorithm](https://reader030.vdocuments.net/reader030/viewer/2022021214/577d2f141a28ab4e1eb0bd42/html5/thumbnails/22.jpg)
8/7/2019 sql join algorithm
http://slidepdf.com/reader/full/sql-join-algorithm 22/24
External Merge Sort: Run Formation (cont’d)
disk
disk
memory
![Page 23: sql join algorithm](https://reader030.vdocuments.net/reader030/viewer/2022021214/577d2f141a28ab4e1eb0bd42/html5/thumbnails/23.jpg)
8/7/2019 sql join algorithm
http://slidepdf.com/reader/full/sql-join-algorithm 23/24
External Merge Sort: Merging Runs
disk
memory
disk
![Page 24: sql join algorithm](https://reader030.vdocuments.net/reader030/viewer/2022021214/577d2f141a28ab4e1eb0bd42/html5/thumbnails/24.jpg)
8/7/2019 sql join algorithm
http://slidepdf.com/reader/full/sql-join-algorithm 24/24
Summary
• A plan describes how a query is executed, including:• the sequence of basic operations (select, project, join,
sort, etc.) used to process the query• how each operation will be implemented, e.g., which
join method will be used, which indices will be used toperform a selection.