1 / 26

Optimization

Optimization. Why Optimize?. Given a query of size n and a database of size m , how big can the output of applying the query to the database be? Example: Consider: R(A) with 2 rows. One row has value 0. One row has value 1. How many rows are in R x R? How many in R x R x R?

uttara
Download Presentation

Optimization

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Optimization

  2. Why Optimize? • Given a query of size n and a database of size m, how big can the output of applying the query to the database be? • Example: Consider: R(A) with 2 rows. One row has value 0. One row has value 1. How many rows are in R x R? How many in R x R x R?  Size of output as a function of input:

  3. Data Complexity • Usually, queries are small. Therefore, it is usually assumed that queries are of a fixed size. • What is the size of the output in this case?

  4. Optimizer Architecture Rewriter Algebraic Space Cost Model Planner Size-Distribution Estimator Method-Structure Space

  5. Optimizer Architecture • Rewriter:Finds equivalent queries that, perhaps can be computed more efficiently. All such queries are passed on to the Planner. (Example: Removing unnecessary joins, like we did in Datalog) • Planner: Examines all possible execution plans and chooses the cheapest one. Uses other modules to find best plan. (We will see this in detail later on)

  6. Optimizer Architecture (cont.) • Algebraic Space:Determines which types of queries will be examined. (Example: Can specify not to examine Cartesian products) • Method-Space Structure: Determines what types of indexes are available and what types of algorithms for algebraic operations can be used. (Example: Which types of join algorithms are available)

  7. Optimizer Architecture (cont.) • Cost Model:Estimates the cost of execution plans. Uses Size-Distribution Estimator for this. • Size-Distribution Estimator: Estimates size of databases, frequency distribution of attributes and size of indexes.

  8. Algebraic Space • We consider queries that consist of select, project and join. (Cartesian product is a special case of join.) • Such queries can be represented by a tree. • Example: 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.dno=dept.dno and sal>100K

  9. 3 Trees name, floor name, floor name, floor  dno=dno  dno=dno sal>100K  dno=dno dno, name dno, floor sal>100K DEPT sal>100K EMP DEPT EMP DEPT name,sal,dno T1 T2 T3 EMP

  10. Restriction 1 • The trees differ in the way selections and projections are handled. • Note that T3 does maximal pushing of selections and projections • Restriction 1:The algebraic space usually restricts selection to be performed as the relations are processed and projections are performed as the results of the other operators are generated. • Which trees in our example conform to Restriction 1?

  11. Restriction 2 • Since the order of selection and projection is determined, we can write trees only with joins. • Restriction 2:Cross products are never formed, unless the query asks for them. • Example: select name, floor, balance from emp, dept, acnt where emp.dno=dept.dno and dept.ano = acnt.ano

  12. Which trees have cross products? 3 Trees  ano=ano  ano=ano, dno=dno  dno=dno  dno=dno ACNT  ACNT  ano=ano EMP EMP DEPT EMP ACNT ACNT DEPT T1 T2 T3

  13. Restriction 3 • In a join, the left relation is the outer relation in the join and the right relation is the inner relation. (in the nested loops algorithms) • Restriction 3:The inner operand of each join is a database relation, not an intermediate result. • Example: select name, floor, balance from emp, dept, acnt, bank where emp.dno=dept.dno and dept.ano=acnt.ano and acnt.bno = bank.bno

  14. Which trees follow restriction 3? 3 Trees  bno=bno  bno=bno  ano=ano BANK  ano=ano BANK  ano=ano ACNT  dno=dno ACNT  dno=dno  bno=bno  dno=dno EMP DEPT DEPT ACNT BANK EMP EMP DEPT T1 T2 T3

  15. Algebraic Space - Summary • We allow plans that • Perform selection and projection on the fly • Do not create cross products • Use database relations as inner relations (also called left –deep trees)

  16. Planner • We use a dynamic programming algorithm • Intuition: (joining N relations) • Find all ways to access a single relation. Estimate costs and choose best access plan(s) • For each pair of relations, consider all ways to compute joins using all access plans from previous step. Choose best plan(s)... • For each i-1 relations joined, find best option to extend to i relations being joined... • Given all plans to compute join of n relations, output the best.

  17. Pipelining Joins • Consider computing: (Emp  Dept)  Acnt. In principle, we should compute Emp  Dept, write the result to the disk. Then read it from the disk to join it with Acnt. • When using nested loops join, we can avoid the step of writing to the disk.

  18. Pipelining Joins - Example Emp blocks Dept blocks Acnt blocks Output blocks Buffer Read block from Emp Write final output 2 3 1 Find matching Dept tuples using index Find matching Acnt tuples using index 4

  19. Interesting Orders • For some joins, such as sort-merge join, the ordering of the relations is important. • Therefore, it is of interest to create plans where attributes that participate in a join are ordered. • For each interesting order, we save the best plan. We save plans for non order if it is the best. • We will look at an example. All cost estimations are fictional.

  20. Example • We want to compute the query: select name, mgr from emp, dept where emp.dno=dept.dno and sal>30K and floor = 2 • Indexes: B+tree index on emp.sal, B+tree index on emp.dnp, hashing index on dept.floor. • Join Methods: Nested loops and merge sort

  21. Step 1 – Accessing Single Relations Which do we save for the next step?

  22. Step 2 – Joining 2 Relations

  23. Step 2 – Joining 2 Relations

  24. Step 2 – Joining 2 Relations

  25. The Plan • Which plan will be chosen?

  26. Cost Model • See last slides from previous lecture to estimate size of results • See slides from previous lecture to estimate time of computing joins

More Related