Query Optimization - PowerPoint PPT Presentation

About This Presentation
Title:

Query Optimization

Description:

The maximum number of tuples is the product of the cardinalities of the ... Otherwise, System R assumes 1/10. ... If only one column has an index, we use it to ... – PowerPoint PPT presentation

Number of Views:12
Avg rating:3.0/5.0
Slides: 40
Provided by: csHu
Category:

less

Transcript and Presenter's Notes

Title: Query Optimization


1
??????????? ?? ???????
  • Query Optimization

2
???? ??????????? ??????
  • ????? ?????? ????? n ???? ?????? ????? m, ???
    ???? ???????
  • ?????? ??? R(A) ?? 2 ?????, ????? ??? ?? ??
    ???? 0 ?????? ?? ?? ???? 1
  • ??? ????? ?? ?- R x R?
  • ???? ?? ?- R x R x R ?
  • ???? ?????? ???? ????? O(mn)

3
???????? ?????? Data Complexity
  • ???? ??? ??????? ??? ????? ???? ???? ????? ?????
    ??????? ????
  • ???, ???? ?????? ??? O(ma), ???? a ??? ????
    ?????? ?? ???? ???????
  • data complexity ??? ???? ???? ?????? ???? ?????
    ?? ????? ?????? ???? ????? ????? ??????? ???? ???
    ???? ??????? ????? ???? ??? ????

4
?????????? ?? ??????????Optimizer Architecture
Rewriter
Algebraic Space
Cost Model
Planner
Size-Distribution Estimator
Method-Structure Space
5
?????????? ?? ??????????
  • ????? (Rewriter) ???? ??????? ?????? ????? ????
    ???? ??? ???? ???? ?? ??????? ??????? (??????,
    ?????? ??? ??? ?????? ?????? ???? ???? ???????
    ???????)
  • ?? ???????? ???? ??????? ??????
  • ????? (Planner) ???? ?? ?? ????????? ??????
    ?????? ??????? ????? ?? ??????? ????? ????? (???,
    ?????? ?????)
  • ?????? ????? ???????? ??????, ??? ????? ??
    ??????? ????? ?????

6
?????????? ?? ?????????? (????)
  • ???? ?????? (Algebraic Space) ???? ???? ????? ??
    ??????? ??????
  • ??????, ??? ??? ????? ?????? ??? ?? ????? ??????
    ????? ???? ?????? ????? ??? ????? ??????
  • ???? ?????? ??????? (Method-Structure Space)
    ???? ???? ????? ?? ???????? ?????? ??????
    ?????????? ???? ?????? ?????? ??????? ?????????
    ???????? ???????
  • ??????, ???? ?????????? ??????? ?????? ?????

7
?????????? ?? ?????????? (????)
  • ???? ????? (Cost Model) ????? ?? ????? ?? ?????
    ??????? ??? ?? ??? ?????????
  • ????? ?????? ?????? ?? ???? ???????
  • ????? ???? ?????? (Size-Distribution Estimator)
    ????? ?? ???? ??? ???????, ???? ?????????, ??????
    ?????? ???? ??????????? ?????? ????? ??????
    ???????

8
???? ??????Algebraic Space
  • ???? ???????????? ?? ??????? ???????? ??????,
    ???? ?????? (????? ?????? ??? ???? ????? ??
    ?????)
  • ???? ????? ?????? ??? ?"? ??
  • ????? ?? ????? ??? ??????
  • emp(name, age, sal, dno)
  • dept(dno, dname, floor, mgr, ano)
  • act(ano, type, balance, bno)
  • bank(bno, bname, address)
  • select name, floor
  • from emp, dept
  • where emp.dnodept.dno and salgt100K

9
3 ????
?name, floor
?name, floor
?name, floor
? dnodno
? dnodno
?salgt100K
? dnodno
?dno, floor
?dno, name
?salgt100K
DEPT
?salgt100K
EMP
DEPT
EMP
DEPT
?name,sal,dno
T1
T2
T3
EMP
10
????? ?????? ????? ????? ????? ??? ?????
  • ????? ????? ?????? ?? ??? ????? ??? ???????
    ?????? ?????? ??????
  • ??? T3 ?????? ?????? ?????? ??????? ????? ???
    ????? (maximal pushing of selections and
    projections)
  • ?????? ???? ????? ???? ?????? ?????? ??? ??????
    ????? ??????? ??????? ????? ??? ?????
  • ????? ?????? ????? ????? ????? ??? ????? ????? ??
    ?????? ??????? ????? ??? ?????
  • ??? ??????? ??????? ????? ????, ????? ????? ??
    ????? ??????? ??? ???? (???, ??? ?????? ??????)
    ??? ????
  • ????? ????? ??? ????? ?? ?????? ????? ????? ????
    ????? ????

11
????? ???? ?????? on the fly
  • ?????? ????? ????? ??????? ???? ??????? ?????
  • ?????, ?????? ????? ????? ???????? ??? ??? ??
    ??????? ???? ???
  • ???, ?????? ????? ????? ???? ??????? ????? ?????
    ?? ????? ??????
  • ?????? ????? ??????? ???? ?????? ?????? ???????
  • ?????? ???? ??????? ??? ??? ????? ??????? ??
    ?????? ??????

12
????? 1 ?? ????? ???????
  • ????? ??????? ???? ????? ???? ?? ?? ??????? ?????
    ?????? ??????? ???????
  • ???? ???? ????? ???? ??, ??? ?????? ?? ????
    ????????? ??? ?????
  • ????? 1 ?????? ????? ??????? ?? ???????, ????
    ?????? ?????? ??????
  • ??????? ????? ??? ?????
  • ???????? on the fly
  • ???? ?????? ????? ????? ????? ???

13
????? 2 ?? ????? ???????
  • ?????? ??????? ?? ?????? ?????? ?????? ???? ?"?
    ????? 1, ???? ????? ??? ??????? ?? ?? ??????
    ?????
  • ????? 2 ?? ?????? ?????? ???????, ??? ?? ?? ????
    ????? (?? ???"? ????? ?????? ?????? ????? ?????
    ???? ????? ?? ???)
  • ?????
  • select name, floor, balance
  • from emp, dept, acnt
  • where emp.dnodept.dno and
  • dept.ano acnt.ano

14
3 ????
????? ???? ?? ????? ???????
? anoano
? anoano, dnodno
? dnodno
? dnodno
ACNT
?
ACNT
? anoano
EMP
EMP
DEPT
EMP
ACNT
ACNT
DEPT
T1
T2
T3
15
????? 3 ?? ????? ???????
  • ?????? ?????, ???? ?????? ??? ??????? (outer
    relation) ????? ????? ??? ?????? (inner relation)
    ????? ?? ????? ?????? ?? block index
    nested-loops joins
  • ????? 3 ???? ?????? ??? ??? ????? ??????? ???
    ????? ??????
  • ?????
  • select name, floor, balance
  • from emp, dept, acnt, bank
  • where emp.dnodept.dno and dept.anoacnt.ano
  • and acnt.bno bank.bno

16
3 ????
???? ???? ??????? ????? 3?
? bnobno
? bnobno
? anoano
BANK
? anoano
? anoano
BANK
ACNT
? dnodno
ACNT
? dnodno
? bnobno
? dnodno
EMP
DEPT
DEPT
ACNT
BANK
EMP
EMP
DEPT
T1
T2
T3
17
???? ?????? ?????
  • ?????? ??????? ????? ????
  • ?????? ????? ????? ??????? ????? ??? ????? ?????
    ??????? ?????
  • ?????? ????? ??????? ??? ??? ????? ???? ????
  • ?????? ???? ??????? ??? ?? ?????? ?????, ??
  • ??????? ??? ??? ????? ?????? ?????? ?? ??????
    ????? ?? ??? ??? ????? ???? ????
  • ?? ?????? ????? ??????
  • ???? ?????? ?????? ????? ??? ???? ??? ?????
    ???????

18
?????? (Planner)
  • ??????? ?????? ????? ??? ????? ?? ???? ???? ?????
    ?? ????? ????? ?? N ?????
  • ??????????
  • ??? ??? ???? r, ??? ?? ?? ?????? ???????? ??????
    r, ???? ?? ????? ?? ?? ??? ??????? ???? ???? ????
    ????? ?????
  • ??? ??? ?????, ??? ?? ?? ?????? ???????? ??????
    ????? ?? ??? ??????, ??? ????? ?????? ??????
    ????? ?????? ???? ????? ?????? ?????? ????, ????
    ???? ????? ?????
  • ??? ????? ?? k-1 ?????, ??? ?? ???? ????? ?????
    ??????? ?????? ?? k-1 ?????? ???? ???? ??? ???
    ???? r
  • ?????? ?? ?????? ?????? ????? ?? N ?????, ???
    ???? ????? ?????

????? ?????? ??? ??? ?? ?? ?? ??????? ?????
?????, ??? ?? ??????? ????? ????? ??? ??? ??????
(????? ?????)
19
????? ?????? ???????????? ??? (Pipelining Joins)
  • ???? ????? ???? ?? ??????
  • (Emp ? Dept) ? Acnt
  • ??????, ???? ???? ?? ?????? Emp ? Dept ??????
    ?????? ????? ?? ?????? ?????
  • ???? ??????, ???? ????? ?? ?????? ?????? ????? ??
    ?????? ??? ?? ???? Acnt
  • ?????? ?? block index nested-loops joins ????
    ????? ?? ????? ????? ??????? ?????

20
Pipelining Joins - Example
Emp blocks
Dept blocks
Acnt blocks
Output blocks
Buffer
Read block from Emp
Write final output
2
3
Find matching Dept tuples using index
Find matching Acnt tuples using index
1
4
21
????? ?????? 3
  • ???? ???? ???? ?????? ??? ???? ????? ???????
    ?????? left-deep trees ??? ??????? ???? block
    index nested-loops join ????? ?- pipeline, ???
    ????? ??????? ?? ????????? ??????? ???? ?????? ??
    ??? ???????

22
?????? ???? ???? ?????? ?? ???? ?????? ??????
  • ??? ????? ?? ??????? ?????????? ?????? ?????? ??
    ??-????? R1, R2, R3, R4, ?????? ?? ???????
    ?????????? ???? ????????? ?????
  • ??????? ?????????? ???? R2, R3, R4 ????
    ??????? ?? ???? ?????? ????? ?? ???????
    ?????????? ?????? R1
  • ??????? ?????????? ???? R1, R3, R4 ????
    ??????? ?? ???? ?????? ????? ?? ???????
    ?????????? ?????? R2
  • ??????? ?????????? ???? R2, R1, R4 ????
    ??????? ?? ???? ?????? ????? ?? ???????
    ?????????? ?????? R3
  • ??????? ?????????? ???? R2, R3, R1 ????
    ??????? ?? ???? ?????? ????? ?? ???????
    ?????????? ?????? R4

23
??? ?? ????? ???? ?? ?? ????? ????????? ???
??-?????
  • ????? ???? (R(A,B) ? S(B,C)) ? T(B,D)
  • ???? ?- sort-merge join ?? R ?- S ???? ?????
    ?????, ??? ??? ????? ????? ??????? ?? B
  • ?? ?? T ????? ?? B, ?? ?????? ?? ?????? ??"? ?? T
    (????? ?- sort-merge join) ??? ?? ??? ??, ??????
    ????? ??? ???? ?????

24
??? ?????? Interesting Orders
  • ?????, ?? ????? ???? ????? ??? ???? ?? ?????? (??
    ??? ???) ??? ??????? ???? ?? ??????????? ??
    ?????? (????, ????? ?? sort-merge join)
  • ???, ???? ????? ??????? (???? ????? ?? k ?????)
    ???? ?????? ?????? ?? ?????????? ???????? ??????
    ????? ?????? ????
  • ??? ??? ?????? (interesting order) ?????? ??
    ??????? ????? ?????
  • ?? ??????? ????? ????? (???? ??? ????????) ???
    ??? ???, ?? ?????? ?? ????

25
?????
  • ????? ???? ?? ???????
  • select name, mgr
  • from emp, dept
  • where emp.dnodept.dno and salgt30K and floor
    2
  • Indexes Btree index on emp.sal, Btree index on
    emp.dnp, hashing index on dept.floor
  • Join Methods Block and index nested-loops, and
    sort-merge
  • ????? ?????? ???????? ?????? ????? ????? ???????

26
Step 1 Accessing Single Relations
Relation Interesting Order Plan Cost
emp emp.dno Access through Btree on emp.dno 700
emp Access through Btree on emp.sal Sequential scan 200 600
dept Access through hashing on dept.floor Sequential scan 50 200
?? ?????? ???? ????
27
Step 2 Joining 2 Relations
Join Method Outer/Inner Plan Cost
nested loops emp/dept For each emp tuple obtained through BTree on emp.sal, scan dept through hashing index on dept.floor to find tuples matching on dno 1800
nested loops emp/dept For each emp tuple obtained through BTree on emp.dno and satisfying selection, scan dept through hashing index on dept.floor to find tuples matching on dno 3000
28
Step 2 Joining 2 Relations
Join Method Outer/Inner Plan Cost
nested loops dept/emp For each dept tuple obtained through hashing index on dept.floor, scan emp through BTree on emp.sal to find tuples matching on dno 2500
nested loops dept/emp For each dept tuple obtained through hashing index on dept.floor, scan emp through BTree on emp.dno to find tuples satisfying the selection on emp.sal 1500
29
Step 2 Joining 2 Relations
Join Method Outer/ Inner Plan Cost
sort merge Sort the emp tuples resulting from accessing the BTree on emp.sal into L1 Sort the dept tuples resulting from accessing the hashing index on dept.floor into L2 Merge L1 and L2 2300
sort merge Sort the dept tuples resulting from accessing the hashing index on dept.floor into L2 Merge L2 and the emp tuples resulting from accessing the BTree on emp.dno and satisfying the selection on emp.sal 2000
30
??????? ??????
  • ??? ??????? ???????

31
???? ?????Cost Model
  • ??? ????? ???? ?????? ?? ????? ?? ?? ???? ?????
  • ????? ????? ??? ??????? ?? ???? ??????

32
Estimating Result Sizes
33
????? ?????? ?????? ????? ?? ????? ?????
  • ????? ???? ????? ?? ????? ?????? Reserves,
    Sailors ?- Boats
  • ??? ???????? ???????? ?? ??????? ??????? ????
    (??? ??????? ???? ?????? ?????? ?????? ???????)
    ???
  • (Sailors ? Reserves) ? Boats
  • (Reserves ? Boats) ? Sailors
  • ?????? ??? ??????? ????? ???? ????? ??? ????
    ????? ???? ????? ?????? ??? ???? ????

34
?????? ?? ???? ???????
  • ???? ?????? ?? ???? ?????? ?? ?????? (Sailors
    ? Reserves) ????? ???? ?????? ?? ?????? (Reserves
    ? Boats)
  • ?- DBMS ???? ?????????? ???? ?????? ??????????
  • ?????????? ??? ???????? ???? ????, ??? ?? ??? ???
    ???????? ?? ??? ???????

35
Statistics Maintained by DBMS
  • Cardinality Number of tuples NTuples(R) in each
    relation R
  • Size Number of pages NPages(R) in each relation
    R
  • Index Cardinality Number of distinct key values
    NKeys(I) for each index I
  • Index Size Number of pages INPages(I) in each
    index I
  • Index Height Number of non-leaf levels
    IHeight(I) in each B Tree index I
  • Index Range The minimum value ILow(I) and
    maximum value IHigh(I) for each index I

36
Estimating Result Sizes
SELECT attribute-list FROM relation-list WHERE
term1 and ... and termn
  • Consider
  • The maximum number of tuples is the product of
    the cardinalities of the relations in the FROM
    clause
  • The WHERE clause is associating a reduction
    factor with each term
  • Estimated result size is maximum size times
    product of reduction factors

37
Estimating Reduction Factors
  • column value 1/NKeys(I) if there is an index I
    on column. This assumes a uniform distribution.
    Otherwise, System R assumes 1/10.
  • column1 column2 1/Max(NKeys(I1),NKeys(I2)) if
    there is an index I1 on column1 and I2 on
    column2. If only one column has an index, we use
    it to estimate the value. Otherwise, use 1/10.
  • column gt value (High(I)-value)/(High(I)-Low(I))
    if there is an index I on column.

38
Example
  • Cardinality(R) 1,000 100 100,000
  • Cardinality(S) 500 80 40,000
  • NKeys(Index on R.agent) 100
  • High(Index on Rating) 10, Low 0

SELECT FROM Reserves R, Sailors S WHERE
R.sid S.sid and S.rating gt 3 and R.agent
Joe
39
Example (cont.)
  • Maximum cardinality 100,000 40,000
  • Reduction factor of R.sid S.sid 1/40,000
  • Reduction factor of S.rating gt 3 (103)/(10-0)
    7/10
  • Reduction factor of R.agent Joe 1/100
  • Total Estimated size 700
Write a Comment
User Comments (0)
About PowerShow.com