1
TI ƯU HÓA CÂU TRUY VN
Chương 5
2
Mc đích
Ti ưu hóa vn tin là tiến trình la chn kế
hach thc thi câu vn tin mt cách hiu qu
nht.
–Tn ít tài nguyên nht.
–Hi đáp nhanh nht.
3
Ni dung
1. Tng quan vxlý truy vn
2. Ti ưu hóa truy vn dùng Heuristics
3. Ti ưu hóa truy vn dùng phương pháp
ước lượng chi phí
4
Các bước xlý vn tin
Scanning,
parsing and
validating
Query
optimizer
Query code
generator
Runtime
database
processor
Intermediate form of query
(Relational algebra expression)
Query in high-level language (SQL)
execution plan
Generated code
Result
1
2
3
4
5
Các bước xlý vn tin
Bước 1
–Scan
Xác định các tkhóa ca ngôn ngSQL, tên thuc
tính, tên quan h.
Parse
Kim tra cú pháp câu truy vn.
Validate
Kim tra tên thuc tính, tên quan hcó trong lược đồ
đã khai báo hay không.
Không nhp nhng khi dùng các thuc tính.
Kiu dliu dùng để so sánh đều hp l.
–Thhin li câu truy vn: đại squan h, query
tree, query graph.
6
Parse tree
< Query>
< SFW>
SELECT < SelList> FROM < FromList> WHERE < Condition>
< Attribute> < RelName> < Tuple> I N < Query>
title StarsIn < Attribute> ( < Query> )
starName < SFW>
SELECT < SelList> FROM < FromList> WHERE < Condition>
< Attribute> < RelName> < Attribute> LIKE < Pattern>
name MovieStar birthDate %1960
Tìm các bphim mà din viên sinh vào năm 1960
SELECT title
FROM StarsIn
WHERE starName IN (
SELECT name
FROM MovieStar
WHERE birthdate LIKE ‘%1960’);
7
Chuyn Q thành ĐSQH
Câu truy vn được phân rã thành các query
block (QB).
–QB là đơn v cơ bn để thchuyn sang các
biu thc ĐSQH và ti ưu hóa.
–Mt QB cha mt biu thc đơn SELEC-FROM-
WHERE-GROUP BY – HAVING.
Các câu truy vn lng trong 1 câu truy vn là
các QB độc lp.
Các toán tgom nhóm (max, min, sum, count)
được thhin dùng ĐSQH mrng.
8
SELECT HONV, TENNV
FROM NHANVIEN
WHERE LUONG > (SELECT MAX(LUONG)
FROM NHANVIEN
WHERE PHG = 5
)
inner block
outer block
c
Bt ĐSQH 1Bt ĐSQH 2
Bti ưu hóa truy vn (Query Optimizer - QO) schn la kếhoch thc thi
cho tng block.
9
Bước 2
–DBMS đề ra kếhoch thc hin câu truy vn
phù hp nht trong các chiến lược thc thi.
–Tiến trình này gi là ti ưu hóa câu truy vn.
Bước 3
–Bphát sinh mã s cho ra mã để thc thi câu
truy vn theo chiến lược va chn.
Bước 4
Thi hành mã đã phát sinh.
10
Sp xếp ngoài (external sorting)
Sp xếp là thut toán chính dùng khi xlý truy vn.Ví dORDER BY.
Sp xếp cũng là bước quan trng dùng cho phép join, union, và bước
loi bdòng trùng nhau khi thc hin phép chiếu.
Tránh thc hin sp xếp nếu dliu đã có chmc cho phép truy cp
theo tht.
Sp xếp ngoài đề cp đến các thut toán sp xếp trên tp tin cơ sd
liu ln không thcha đủ trong bnhchính.
Sort-Merge:
–Thut toán sp xếp gm 2 bước: sorting và merging.
–Sp xếp các subfile (runs) ca tp tin chính, sau đótrn các sorted runs, ri
to subfile ln hơn, sp xếp ri li trn chúng.
Kích thước ca 1 run và s lượng run khi đầu nR tùy vào s lượng file
blocks b và không gian buffer trng nB.
Nếu nB = 5 và b = 1024 blocks thì nR = b/nB, tc là ban đầu có 205 run. Sau
khi sp xếp, 205 sorted run được lưu trong file tm trên đĩa.