Overview of Implementing Relational Operators�Query Evaluation
Chapter 12
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
1
Motivation: Evaluating Queries
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
2
Overview of Query Evaluation
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
3
Some Common Techniques
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
4
Examples
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
5
Example Relations
Sailors
Reservations
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
6
Query Plan Example
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
RA Tree:
Reserves
Sailors
sid=sid
bid=100
rating > 5
sname
(Simple Nested Loops)
(On-the-fly)
(On-the-fly)
Plan:
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
7
Alternative Plan
Reserves
Sailors
sid=sid
bid=100
sname
(On-the-fly)
rating > 5
(Scan;
write to
temp T1)
(Scan;
write to
temp T2)
(Sort-Merge Join)
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
8
Indexes and Query Plans
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
9
Access Paths
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
10
Exercise 12.4
Consider the following schema with the Sailors relation:
Sailors(sid: integer, sname: string, rating: integer, age: real)
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
11
Selecting Indexes
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
12
Create Indexes in SQL-Server
use aworks;
create index IX_Product_Color
on SalesLT.Product (Color);
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
13
Understanding the Workload
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
14
Statistics and Catalogs
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
15
Choice of Indexes
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
16
Choice of Index, One Approach
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
17
Examples of Clustered Indexes
SELECT E.dno
FROM Emp E
WHERE E.age>40
SELECT E.dno, COUNT (*)
FROM Emp E
WHERE E.age>10
GROUP BY E.dno
SELECT E.dno
FROM Emp E
WHERE E.hobby=Stamps
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
18
Index-Only Plans
SELECT D.mgr
FROM Dept D, Emp E
WHERE D.dno=E.dno
SELECT D.mgr, E.eid
FROM Dept D, Emp E
WHERE D.dno=E.dno
SELECT E.dno, COUNT(*)
FROM Emp E
GROUP BY E.dno
SELECT E.dno, MIN(E.sal)
FROM Emp E
GROUP BY E.dno
SELECT AVG(E.sal)
FROM Emp E
WHERE E.age=25 AND
E.sal BETWEEN 3000 AND 5000
<E.dno>
<E.dno,E.eid>
Tree index!
<E.dno>
<E.dno,E.sal>
Tree index!
<E. age,E.sal>
or
<E.sal, E.age>
Tree!
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
19
Index Selection Guidelines
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
20
Computing Relational Operators
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
21
Selection and Projection
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
22
One Approach to Selections
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
23
Selectivity Example
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
24
Using an Index for Selections
SELECT *
FROM Reserves R
WHERE R.rname < ‘C%’
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
25
Projection
SELECT DISTINCT
R.sid, R.bid
FROM Reserves R
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
26
The Biggie: Join
Nested Loops: Scan and Match
Sort and Merge
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
27
Join: Sort-Merge (R S)
i=j
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
28
Example of Sort-Merge Join
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
29
Sorting
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
30
Example of Sort-Merge Join
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
31
Exercise 14.4.3
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
32
Nested Loops: Flowchart
From http://www.dbsophic.com/physical-join-operators-in-sql-server-nested-loops/.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
33
Join: Index Nested Loops
foreach tuple r in R do
foreach tuple s in S where ri == sj do
add <r, s> to result
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
34
Examples: Scan and Match
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
35
Exercise 14.4.1
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
36
Query Planning
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
37
Highlights of System R Optimizer
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
38
Cost Estimation
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
39
Size Estimation and Reduction Factors
SELECT attribute list
FROM relation list
WHERE term1 AND ... AND termk
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
40
Schema for Examples
Sailors (sid: integer, sname: string, rating: integer, age: real)
Reserves (sid: integer, bid: integer, day: dates, rname: string)
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
41
Motivating Example
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
Reserves
Sailors
sid=sid
bid=100
rating > 5
sname
(Simple Nested Loops)
(On-the-fly)
(On-the-fly)
RA Tree:
Plan:
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
42
Alternative Plans 1 �(No Indexes)
Reserves
Sailors
sid=sid
bid=100
sname
(On-the-fly)
rating > 5
(Scan;
write to
temp T1)
(Scan;
write to
temp T2)
(Sort-Merge Join)
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
43
Alternative Plan 2�With Indexes
Reserves
Sailors
sid=sid
bid=100
sname
(On-the-fly)
rating > 5
(Use hash
index; do
not write
result to
temp)
(Index Nested Loops,
with pipelining )
(On-the-fly)
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
44
Summary
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
45
Choosing Indexes
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke
46