0% found this document useful (0 votes)
63 views

Query Optimization

The document discusses query optimization in databases. It explains that a SQL query first goes through parsing and translation into a relational algebra expression. An optimizer then chooses the most efficient execution plan by evaluating algorithms like hash joins and nested loops joins. The optimizer aims to minimize costs based on I/O costs and CPU costs, using statistics about tables, indexes, and the system. General optimization rules include executing selections first to reduce data sizes and joining smaller relations first.

Uploaded by

Anabelle
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
63 views

Query Optimization

The document discusses query optimization in databases. It explains that a SQL query first goes through parsing and translation into a relational algebra expression. An optimizer then chooses the most efficient execution plan by evaluating algorithms like hash joins and nested loops joins. The optimizer aims to minimize costs based on I/O costs and CPU costs, using statistics about tables, indexes, and the system. General optimization rules include executing selections first to reduce data sizes and joining smaller relations first.

Uploaded by

Anabelle
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 22

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

You might also like