Query Optimization
COURSE 6: Databases
Query execution
Databases C6: Query Optimization
Sql Query Parser, translation
Relational-Algebra expression
Optimizer EXECUTION-PLAN
Evaluation,
Query Output
algorithms
Databases C6: Query Optimization
select p1.prod_name, p2.prod_name, p1.prod_min_price
Sql Query Parser, translation from products p1 join products p2
on p1.prod_min_price = p2.prod_min_price
check syntax, table names, column names
Databases C6: Query Optimization
select p1.prod_name, p2.prod_name, p1.prod_min_price
Sql Query Parser, translation from products p1 join products p2
on p1.prod_min_price = p2.prod_min_price
Relational-Algebra expression
relations + operators
JOIN (p1, p2)
ෑ 𝐽𝑂𝐼𝑁( 𝑝1, 𝑝2)
𝑝1.𝑛𝑎𝑚𝑒,𝑝1.𝑚𝑖𝑛𝑝𝑟𝑖𝑐𝑒,𝑝2.𝑛𝑎𝑚𝑒,𝑝2.𝑝𝑟𝑖𝑐𝑒
products p1 products p2
Databases C6: Query Optimization
select p1.prod_name, p2.prod_name, p1.prod_min_price
Sql Query Parser, translation from products p1 join products p2
on p1.prod_min_price = p2.prod_min_price
Relational-Algebra expression ෑ
relations + operators
JOIN (p1, p2)
ෑ 𝐽𝑂𝐼𝑁( 𝑝1, 𝑝2)
𝑝1.𝑛𝑎𝑚𝑒,𝑝1.𝑚𝑖𝑛𝑝𝑟𝑖𝑐𝑒,𝑝2.𝑛𝑎𝑚𝑒,𝑝2.𝑝𝑟𝑖𝑐𝑒
products p1 products p2
Databases C6: Query Optimization
select p1.prod_name, p2.prod_name, p1.prod_min_price
Sql Query Parser, translation from products p1 join products p2
on p1.prod_min_price = p2.prod_min_price
Relational-Algebra expression
JOIN
relations + operators
ෑ ෑ
𝐽𝑂𝐼𝑁(ෑ 𝑝1 , ෑ 𝑝2)
𝑛𝑎𝑚𝑒,𝑚𝑖𝑛𝑝𝑟𝑖𝑐𝑒 𝑛𝑎𝑚𝑒,𝑚𝑖𝑛𝑝𝑟𝑖𝑐𝑒
products p1 products p2
Databases C6: Query Optimization
Sql Query Parser, translation
select p1.prod_name, p2.prod_name, p1.prod_min_price
from products p1 join products p2
on p1.prod_min_price = p2.prod_min_price
Relational-Algebra expression
Optimizer EXECUTION-PLAN
Evaluation,
algorithms
HASH-JOIN NESTED-LOOPS MERGE-JOIN
Databases C6: Query Optimization
Sql Query Parser, translation
select p1.prod_name, p2.prod_name, p1.prod_min_price
from products p1 join products p2
on p1.prod_min_price = p2.prod_min_price
Relational-Algebra expression
Optimizer EXECUTION-PLAN
Evaluation,
algorithms
HASH-JOIN which table is hashed? the “smaller”
Databases C6: Query Optimization
Relational algebra properties
Databases C6: Query Optimization
Relational algebra properties
• PROP1: join and cross product commute
• PROP2: associativity
Databases C6: Query Optimization
Relational algebra properties
• PROP3: projection composition
• PROP4: selection composition
Databases C6: Query Optimization
Relational algebra properties
• PROP5: selection and projection commute
• PROP6: selection and cross join commute
Databases C6: Query Optimization
Relational algebra properties
• PROP7: selection and union commute
• PROP8: selection and difference commute
Databases C6: Query Optimization
Relational algebra properties
• PROP9: projection and cross product commute
• PROP10: projection and union commute
Databases C6: Query Optimization
Relational algebra properties
• PROP11: join and projection commute
• PROP12: selection and join composition
Databases C6: Query Optimization
General optimization rules
Databases C6: Query Optimization
General optimization rules
• Execute selections first
• Reduce relation size (number of rows)
• Avoid cross-joins, use joins
• First join to be executed is the one obtaining the smaller relation
• Execute projections first
Databases C6: Query Optimization
Mesure Query Cost
Databases C6: Query Optimization
rule-based execution cost-based execution
plans plans
obsolite IO-cost CPU-cost
Databases C6: Query Optimization
disk accesses CPU time
number of blocks cost for processing cost for processing
transferred a tuple an index entry
number of tuples cost for processing cost for processing
a tuple a function …..
Databases C6: Query Optimization
statistics
table:
column statistics: index statistics:
number of rows, system statistics
number of blocks, avg number of distinct number of leafs,
row length values, levels
number of nulls,
data distribution
Databases C6: Query Optimization