Plan For The Query Optimization Topic: COMP302 Database Systems
Plan For The Query Optimization Topic: COMP302 Database Systems
COMP302
Database Systems
Query Optimisation_04 1
Query Optimisation_04 2
Tokens are
SQL keywords,
attribute and
relation names
Validation
Attribute and
relation names
are checked
against Catalog
Query Optimisation_04 3
Query execution
Query Optimisation_04 4
Query Optimisation_04 5
Query Optimisation_04 6
Query Optimisation_04 7
Query Optimisation_04 8
Legend:
Tree
node
r(N3)
Base
relation
r(N1)
COMP302 Database Systems
r(N3)
Query Optimisation_04 9
Query Optimisation_04 10
Query Optimisation_04 11
Query Optimisation_04 12
N1. A = N2. A
D > d
F = f
r(N3)
r(N2)
Further improvement
can be achieved by
replacing each
Cartesian product
followed by a select
according to a join
condition with a join
operator
r(N1)
COMP302 Database Systems
Query Optimisation_04 13
N1. A = N2. A
D > d
r(N2)
r(N1)
COMP302 Database Systems
F = f
r(N3)
Next improvement
can be achieved by
switching the
positions of N1 and
N3, so that the very
restrictive select
operation
F = f
could be applied as
early as possible
Query Optimisation_04 14
Query Optimisation_04 15
D > d
N3.E = N2.E
F = f
r(N2)
r(N1)
Final improvement
can be achieved by
keeping in intermediate
relations only the
attributes needed by
subsequent operations
This can be
accomplished by
applying defined, or
even introducing new undefined (but logically
implied) project
()
operations as early as
possible
r(N3)
Query Optimisation_04 16
N1.C
N2.A
N2.E = N3.E
N3.E
N2.(A, E )
F = f
r(N2)
N1.(A, C )
D > d
r(N1)
r(N3)
COMP302 Database Systems
Query Optimisation_04 17
Query Optimisation_04 18
Query Optimisation_04 19
Query Optimisation_04 20
Query Optimisation_04 21
Some Assumptions
Query Optimisation_04 22
Query Optimisation_04 23
Query Optimisation_04 24
Query Optimisation_04 25
Join Selectivity
Query Optimisation_04 26
Query Optimisation_04 27
Query Optimisation_04 28
Relation
N
Block 1
Relation
N M
Buffer 2 Blocks 1- p
Block m
Block 1
Buffer 3 Block 1
Block q
Relation
M
Block 1
Block p
Query Optimisation_04 29
Query Optimisation_04 30
Query Optimisation_04 31
Query Optimisation_04 32
Query Optimisation_04 33
Hash Join
Query Optimisation_04 34
Query Optimisation_04 35
M1
N2
buffer1
M2
buffer2
h
Nm M m
bufferm
h
h
Input buffer
Main Memory
block
record
First N then M
M
Query Optimisation_04 36
Query Optimisation_04 37
probing
Join Result
Output buffer
buffer1
buffer2
bufferbi
Input buffer
N1
M1
N2
M2
Main Memory
Iteration i = 2
out of m
Nm M m
Query Optimisation_04 38
Query Optimisation_04 39
Query Optimisation_04 40
Query Optimisation_04 41
N3.E = N2.E
F = f
D > d
N2
N1
N3
COMP302 Database Systems
Query Optimisation_04 42
Query Optimisation_04 43
Query Optimisation_04 44
N2.A = N1.A
Use B-tree
on F
Since DISTINCT,
Use Sort and Drop
Duplicates
N3.E = N2.E
F = f
N2
D > d
Use Multi-List
with B-tree on
D
N1
N3
COMP302 Database Systems
Query Optimisation_04 45
Summary
Query Optimisation_04 46
Query Optimisation_04 47
Query Optimisation_04 48
Query Optimisation_04 49
COMP302
Database Systems
Relationship Between b, r, f
L=
n
i =1
li
Query Optimisation_04 51
Query Optimisation_04 52
Query Optimisation_04 53
Query Optimisation_04 54
Query Optimisation_04 55
Selection Cardinality
Query Optimisation_04 56
Query Optimisation_04 57
Query Optimisation_04 58
Query Optimisation_04 59
Query Optimisation_04 60
Query Optimisation_04 61
Query Optimisation_04 62
rN = 3, rM = 6,
Since relation N key is B, and referential integrity M [B ] N [B ] is
satisfied, | N
M | = rM = 6
js = | N
M | / (rN * rM ) = rM / (rN * rM ),
hence js = 1 / rN = 0.33
COMP302 Database Systems
Query Optimisation_04 63
N1
A = 0 (N ) =
M
N1
=
Query Optimisation_04 64
Query Optimisation_04 65
Relation
N
Block 1
Buffer 2 Block 2
Relation
N M
Buffer 3 Blocks 1- p
Block 1
Buffer 4 Block 1
Block q
Block 2
Block m
Relation
M
Block 1
Block p
Query Optimisation_04 66
Query Optimisation_04 67
bufferres
value of the join attribute
bufferN
bufferM
bufferi
blockN1
address
blockM1
Index
blockNn
COMP302 Database Systems
blockMm
Query Optimisation_04 68
Query Optimisation_04 69
Query Optimisation_04 70
Query Optimisation_04 71
Query Optimisation_04 72
Query Optimisation_04 73
Query Optimisation_04 74
Query Optimisation_04 75
Query Optimisation_04 76
Query Optimisation_04 77
Query Optimisation_04 78
Query Optimisation_04 79
Query Optimisation_04 80
Query Optimisation_04 81
COMP302
Database Systems
Query Optimisation_04 83
SORT
N2.A = N1.A
A, G
A, C
E < e
N1
N2
COMP302 Database Systems
Query Optimisation_04 84
Cost Optimization
COMP302 Database Systems
Query Optimisation_04 85
Cost of a SELECT
Query Optimisation_04 86
Cost of a Project
Query Optimisation_04 87
Cost of a Join
Query Optimisation_04 88
Cost of a Sort
Query Optimisation_04 89