Relational Query Optimization

Slides:



Advertisements
Similar presentations
Examples of Physical Query Plan Alternatives
Advertisements

Query Optimization Goal: Declarative SQL query
1 Overview of Query Evaluation Chapter Objectives  Preliminaries:  Core query processing techniques  Catalog  Access paths to data  Index matching.
1 Relational Query Optimization Module 5, Lecture 2.
Relational Query Optimization CS186, Fall 2005 R & G Chapters 12/15.
Relational Query Optimization 198:541. Overview of Query Optimization  Plan: Tree of R.A. ops, with choice of alg for each op. Each operator typically.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Overview of Query Evaluation Chapter 12.
1 Implementation of Relational Operations Module 5, Lecture 1.
SPRING 2004CENG 3521 Join Algorithms Chapter 14. SPRING 2004CENG 3522 Schema for Examples Similar to old schema; rname added for variations. Reserves:
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Overview of Query Evaluation Chapter 12.
Overview of Query Evaluation R&G Chapter 12 Lecture 13.
Query Optimization: Transformations May 29 th, 2002.
Query Optimization II R&G, Chapters 12, 13, 14 Lecture 9.
CS186 Final Review Query Optimization.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Relational Query Optimization Chapter 15.
Query Optimization Overview Zachary G. Ives University of Pennsylvania CIS 550 – Database & Information Systems December 2, 2004 Some slide content derived.
Evaluation of Relational Operations. Relational Operations v We will consider how to implement: – Selection ( ) Selects a subset of rows from relation.
Overview of Query Optimization v Plan : Tree of R.A. ops, with choice of alg for each op. –Each operator typically implemented using a `pull’ interface:
Query Optimization R&G, Chapter 15 Lecture 16. Administrivia Homework 3 available today –Written exercise; will be posted on class website –Due date:
1 Implementation of Relational Operations: Joins.
Overview of Implementing Relational Operators and Query Evaluation
Introduction to Database Systems1 Relational Query Optimization Query Processing: Topic 2.
Database Management Systems, R. Ramakrishnan and J. Gehrke1 Query Evaluation Chapter 12: Overview.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Overview of Query Evaluation Chapter 12.
1 Overview of Query Evaluation Chapter Overview of Query Evaluation  Plan : Tree of R.A. ops, with choice of alg for each op.  Each operator typically.
Relational Query Optimization R & G Chapter 12/15.
Database systems/COMP4910/Melikyan1 Relational Query Optimization How are SQL queries are translated into relational algebra? How does the optimizer estimates.
Advanced Databases: Lecture 8 Query Optimization (III) 1 Query Optimization Advanced Databases By Dr. Akhtar Ali.
Database Systems/comp4910/spring20031 Evaluation of Relational Operations Why does a DBMS implements several algorithms for each algebra operation? What.
Implementing Natural Joins, R. Ramakrishnan and J. Gehrke with corrections by Christoph F. Eick 1 Implementing Natural Joins.
Query Optimization Imperative query execution plan: Declarative SQL query Ideally: Want to find best plan. Practically: Avoid worst plans! Goal: Purchase.
1 Database Systems ( 資料庫系統 ) December 3, 2008 Lecture #10.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Overview of Implementing Relational Operators and Query Evaluation Chapter 12.
Introduction to Query Optimization, R. Ramakrishnan and J. Gehrke 1 Introduction to Query Optimization Chapter 13.
Relational Query Optimization R & G Chapter 12/15.
Database Management Systems, R. Ramakrishnan and J. Gehrke1 Introduction to Query Optimization Chapter 13.
Introduction to Compilers Jianlin Feng School of Software SUN YAT-SEN UNIVERSITY.
Implementation of Database Systems, Jarek Gryz1 Evaluation of Relational Operations Chapter 12, Part A.
Implementation of Database Systems, Jarek Gryz1 Relational Query Optimization Chapters 12.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Evaluation of Relational Operations Chapter 14, Part A (Joins)
Database Applications (15-415) DBMS Internals- Part IX Lecture 20, March 31, 2016 Mohammad Hammoud.
Relational Query Optimization
CS222P: Principles of Data Management Lecture #15 Query Optimization (System-R) Instructor: Chen Li.
Introduction to Query Optimization
Evaluation of Relational Operations
Overview of Query Optimization
Introduction to Database Systems
Examples of Physical Query Plan Alternatives
Relational Operations
Implementing Relational Operators Query Evaluation
Relational Query Optimization
Implementation of Relational Operations
Database Applications (15-415) DBMS Internals- Part IX Lecture 21, April 1, 2018 Mohammad Hammoud.
Overview of Query Evaluation
Relational Query Optimization
Overview of Query Evaluation
Overview of Query Evaluation
Implementation of Relational Operations
Relational Query Optimization
CS222P: Principles of Data Management Notes #13 Set operations, Aggregation, Query Plans Instructor: Chen Li.
Overview of Query Evaluation: JOINS
Implementation of Relational Operations
Database Systems (資料庫系統)
Relational Query Optimization (this time we really mean it)
Overview of Query Evaluation
CS222: Principles of Data Management Lecture #15 Query Optimization (System-R) Instructor: Chen Li.
Relational Query Optimization
Relational Query Optimization
Relational Algebra Chpt 4a Xintao Wu Raghu Ramakrishnan
Presentation transcript:

Relational Query Optimization 1

Review Choice of single-table operations Depends on indexes, memory, stats,… Joins Block nested loops: simple, exploits extra memory Indexed nested loops: good if 1 rel small and one indexed Sort/Merge Join good with small amount of memory, equal-size tables Hash Join good if one table much smaller, bad with skewed data These are “rules of thumb” On their way to a more principled approach…

Query Optimization Overview Query can be converted to relational algebra Rel. Algebra converts to tree Each operator has implementation choices Operators can also be applied in different orders! SELECT S.sname FROM Reserves R, Sailors S WHERE R.sid=S.sid AND R.bid=100 AND S.rating>5 Reserves Sailors sid=sid bid=100 rating > 5 sname (sname)(bid=100  rating > 5) (Reserves ⨝ Sailors) 4

Query Optimization Overview (cont.) Plan: Tree of R.A. ops (and some others) with choice of algorithm for each op. Recall: Iterator interface (next()!) Three main issues: For a given query, what plans are considered? How is the cost of a plan estimated? How do we “search” in the “plan space”? Ideally: Want to find best plan. Reality: Avoid worst plans! 2

Cost-based Query Sub-System Select * From Blah B Where B.blah = blah Queries Usually there is a rewriting step before the cost-based steps to simplify queries (esp. to “flatten” views and subqueries). Query Parser Query Optimizer Plan Generator Plan Cost Estimator Catalog Manager Schema Statistics Query Executor

Let’s go through some examples Just to get a flavor…

Schema for Examples Sailors (sid: integer, sname: string, rating: integer, age: real) Reserves (sid: integer, bid: integer, day: dates, rname: string) As seen in previous lectures… Reserves: Each tuple is 40 bytes long, 100 tuples per page, 1000 pages. Assume there are 100 boats Sailors: Each tuple is 50 bytes long, 80 tuples per page, 500 pages. Assume there are 10 different ratings Assume we have 5 pages in our buffer pool! 3

Motivating Example SELECT S.sname FROM Reserves R, Sailors S WHERE R.sid=S.sid AND R.bid=100 AND S.rating>5 Cost: 500+500*1000 I/Os By no means the worst plan! Misses several opportunities: selections could be ‘pushed’ down no use made of indexes Goal of optimization: Find faster plans that compute the same answer. Sailors Reserves sid=sid bid=100 rating > 5 sname (Page-Oriented Nested loops) (On-the-fly) 4

Alternative Plans – Push Selects (No Indexes) Sailors Reserves sid=sid rating > 5 sname (Page-Oriented Nested loops) (On-the-fly) bid=100 Sailors Reserves sid=sid bid=100 rating > 5 sname (Page-Oriented Nested loops) (On-the-fly) 500,500 IOs 250,500 IOs 5

Alternative Plans – Push Selects (No Indexes) Sailors Reserves sid=sid rating > 5 sname (Page-Oriented Nested loops) (On-the-fly) bid=100 Sailors Reserves sid=sid bid = 100 sname (Page-Oriented Nested loops) (On-the-fly) rating > 5 250,500 IOs 250,500 IOs 5

Alternative Plans – Push Selects (No Indexes) Sailors Reserves sid=sid rating > 5 sname (Page-Oriented Nested loops) (On-the-fly) bid=100 Sailors Reserves sid=sid rating > 5 sname (Page-Oriented Nested loops) (On-the-fly) bid=100 6000 IOs 250,500 IOs 5

Alternative Plans – Push Selects (No Indexes) Sailors Reserves sid=sid rating > 5 sname (Page-Oriented Nested loops) (On-the-fly) bid=100 Sailors Reserves sid=sid rating > 5 sname (Page-Oriented Nested loops) (On-the-fly) bid=100 (Scan & Write to temp T2) 4250 IOs 1000 + 500+ 250 + (10 * 250) 6000 IOs 5

Alternative Plans – Push Selects (No Indexes) Sailors Reserves sid=sid rating > 5 sname (Page-Oriented Nested loops) (On-the-fly) bid=100 (Scan & Write to temp T2) Reserves Sailors sid=sid bid=100 sname (Page-Oriented Nested loops) (On-the-fly) rating>5 (Scan & Write to temp T2) 4250 IOs 4010 IOs 500 + 1000 +10 +(250 *10) 5

More Alternative Plans (No Indexes) Reserves Sailors sid=sid bid=100 sname (On-the-fly) rating > 5 (Scan; write to temp T1) temp T2) (Sort-Merge Join) More Alternative Plans (No Indexes) Sort Merge Join With 5 buffers, cost of plan: Scan Reserves (1000) + write temp T1 (10 pages) = 1010. Scan Sailors (500) + write temp T2 (250 pages) = 750. Sort T1 (2*2*10) + sort T2 (2*4*250) + merge (10+250) = 2300 Total: 4060 page I/Os. If use Block NL join, join = 10+4*250, total cost = 2770. Can also `push’ projections, but must be careful! T1 has only sid, T2 only sid, sname: T1 fits in 3 pgs, cost of Chunk NL under 250 pgs, total < 2000. 5

More Alt Plans: Indexes (On-the-fly) sname With clustered index on bid of Reserves, we access: 100,000/100 = 1000 tuples on 1000/100 = 10 pages. INL with outer not materialized. (On-the-fly) rating > 5 (Index Nested Loops, sid=sid with pipelining ) (Use B+-tree do not write to temp) bid=100 Sailors Projecting out unnecessary fields from outer doesn’t make an I/O difference. Reserves Join column sid is a key for Sailors. At most one matching tuple, unclustered index on sid OK. Decision not to push rating>5 before the join is based on availability of sid index on Sailors. Cost: Selection of Reserves tuples (10 I/Os); then, for each, must get matching Sailors tuple (1000*1.2); total 1210 I/Os. 6

Summing up There are lots of plans Even for a relatively simple query Engineers often think they can pick good ones MapReduce API was based on that assumption Not so clear that’s true! Manual query planning can be tedious, technical Witness the rise of Hive, SparkSQL, despite immature optimizers Machines are better at enumerating options than people But we will see soon how optimizers make simplifying assumptions