SlideShare une entreprise Scribd logo
1  sur  28
Hệ quản trị cơ sở dữ liệu

Query Optimization
Dư Phương Hạnh
Bộ môn Hệ thống thông tin
Khoa CNTT, trường Đại học Công nghệ
Đại học Quốc gia Hanoi
hanhdp@vnu.edu.vn
Outline
 Tổng quan
 Không gian physical plans
 Các chiến lược tối ưu hoá
– Dựa trên kinh nghiệm
– Dựa trên chi phí

 Tổng kết
Tài liệu tham khảo: Chap 12+13+14 of Ramakrishnan
2

Hệ quản trị CSDL @ BM HTTT
Giới thiệu
 Phần lớn các truy vấn được viết bởi ngôn ngữ bậc cao phi
thủ tục như SQL, QBE, OQL.
 Các truy vấn này phải được chuyển sang các biểu thức đại
số quan hệ tương đương (query tree).
 Các biểu thức này có chứa các toán tử đại số quan hệ, mỗi
toán tử có một chi phí (cost) thực thi tương ứng.
 Với một mệnh đề truy vấn, có thể chuyển đổi tương ứng
với nhiều cây truy vấn, việc chọn lựa plan thực thi nào là
dựa trên đánh giá chi phí.
– Các cây truy vấn tương đương được sinh ra nhờ các phép biến đổi
tương đương.
3

Hệ quản trị CSDL @ BM HTTT
Quy trình xử lý truy vấn
SQL query
parse
query tree
Query rewriting
statistics

logical query plan
Physical plan generation
physical query plan
execute
result

4

Hệ quản trị CSDL @ BM HTTT
Vấn đề là…
Chọn best plan từ không gian
physical plans
Khó vì: không gian này có thể rất lớn do
 Có nhiều phép biến đổi tương đương
 Các phép toán vật lý khác nhau cho
cùng một toán tử logic
– nested loop join, hash join, sort-merge join
– index-scan, table-scan

 Các mẫu cây khác nhau
 Các chiến thuật xử lý gối đầu
(pipelining, …)
5

Hệ quản trị CSDL @ BM HTTT
Các chiến lược
1: Chọn một plan bất kỳ
– Bad plans can be really bad!

2: Dựa vào mẹo (heuristics)
– Ví dụ: Sử dụng index nhiều nhất có thể với HQTCSDL
MySQL

3: Dựa trên chi phí
– Liệt kê, ước lượng chi phí thi hành, chọn cái tốt nhất
– Chú ý các vòng lặp trong các plans

4: Hybrid

6

Hệ quản trị CSDL @ BM HTTT
Thực tế
 Hybrid
 Sử dụng mẹo (heuristics, còn gọi là các luật viết
lại - rewrite rules)
– Loại đi những plans “xấu nhất”
– Tránh bỏ xót những plans tốt

 Dựa trên ước lượng chi phí
– Ước lượng chi phí thi hành đối với mỗi plan, từ đó chọn
plan có chi phí tốt nhất

7

Hệ quản trị CSDL @ BM HTTT
SQL query

parse
parse tree

Query rewriting
statistics

Initial logical plan
Rewrite rules

Logical plan

logical query plan

Physical plan generation

“Best” logical plan

physical query plan

execute
result
8

Hệ quản trị CSDL @ BM HTTT
Tại sao cần viết lại truy vấn?
 Giảm bớt số lượng physical plans nhờ:
– Loại bỏ các điều kiện/toán tử dư thừa
– Sử dụng cá luật giúp cải thiện hiệu năng truy vấn

 Tiền xử lý
– Chuyển các truy vấn sang dạng dễ dàng xử lý nhất

 Giảm thời gian đáng kể quá trình thi hành truy
vấn (kết quả không bị ảnh hưởng)
9

Hệ quản trị CSDL @ BM HTTT
Các luật viết lại truy vấn
 Luật chuyển đổi logical plan
 Các biến đổi tương đương trong đại số quan hệ
 Đưa các vị từ xuống dưới
 Thực thi các phép chiếu sớm nhất có thể
 Tránh tối đa nhân chéo cross-join
 Sử dụng cây trái nhất
 Chuyển truy vấn lồng  Joins
 Sử dụng các ràng buộc, chẳng hạn unique
10

Hệ quản trị CSDL @ BM HTTT
Ví dụ
Select B,D From R,S Where R.A = “c” ∧ R.C=S.C
<Query>
<SFW>
SELECT <SelList>

FROM

<FromList>

WHERE

<Cond>

<Attribute> <SelList> <RelName> <FromList> <Cond> AND
B

<Attribute>
D

R

<Cond>

<RelName>
<Attr> <Op> <Const>
S

R.A

=

“c”
<Attr> <Op> <Attr>

11

R.C

=

S.C

Hệ quản trị CSDL @ BM HTTT
Parsing
 Kiểm tra ngữ nghĩa (semantic)
– Lịệu các thuộc tính của phép chiếu có tồn tại trong các
quan hệ xuất hiện ở mệnh đề FROM?
– Có thuộc tính trùng lặp hay không?
– Kiểu dữ liệu có chuẩn không, ví dụ: R.A > 17.5

12

Hệ quản trị CSDL @ BM HTTT
Initial Logical Plan
πB,D
Select B,D
From R,S
Where R.A = “c” ∧
R.C=S.C

σR.A = “c” Λ R.C = S.C
X
R

S

Relational Algebra: ΠB,D [ σR.A=“c”∧ R.C = S.C (RXS)]
13

Hệ quản trị CSDL @ BM HTTT
Apply Rewrite Rule (1)
πB,D

πB,D
σR.A = “c” Λ R.C = S.C

σR.C = S.C
σR.A = “c”

X
R

S

X
R

S

ΠB,D [ σR.C=S.C [σR.A=“c”(R X S)]]
14

Hệ quản trị CSDL @ BM HTTT
Apply Rewrite Rule (2)
πB,D
σR.C = S.C
σR.A = “c”
X
R

S

πB,D
σR.C = S.C
X

σR.A = “c”

S

R

ΠB,D [ σR.C=S.C [σR.A=“c”(R)] X S]
15

Hệ quản trị CSDL @ BM HTTT
Apply Rewrite Rule (3)
πB,D

πB,D

σR.C = S.C

Natural join

σR.A = “c”

X

σR.A = “c”
R

16

S

ΠB,D [[σR.A=“c”(R)]

S

R
S]
Hệ quản trị CSDL @ BM HTTT
Các phép biến đổi tương
đương
1. Phân phối σ
σC1 AND C2 AND …AND Cn(R)≡σC1(σC2(…(σCn(R))…)
2. Giao hoán của σ
σ C1 (σ C2 (R)) ≡ σ C2 (σ C1 (R))
3. Phân phối của Π
π list1(π list2 …(π listn(R))…) ≡ π list1(R)
4. Giao hoán σ với Π
π A1, A2,…,An (σ C (R))≡ σ C (π A1, A2,…,An (R))
C involves only A1,…,An
17

Hệ quản trị CSDL @ BM HTTT
Các phép biến đổi…
5. Giao hoán của ⋈ ( or × )
R⋈ CS≡S⋈ CR
meaning
6. Giao hoán σ với ⋈ ( or × )
- σC (R ⋈ S) ≡(σC (R) ) ⋈ S
attributes in C involve only attributes of R
- σC (R ⋈ S) ≡(σC1 (R) ) ⋈ (σC2 (S) )
C1 (C2) involves only attribute of R(S)

18

Hệ quản trị CSDL @ BM HTTT
Các phép biến đổi…
7. Giao hoán π với ⋈ ( or × )
π L( R ⋈ C S)≡(π A1,…,An (R)) ⋈ C (π B1,…,Bm (S))
L = { A1,…, An, B1,…, Bm }
join condition C only involves L
General Form
π L ( R ⋈ C S) ≡
π L ((π A1,…,An, An+1,…,An+k (R)) ⋈
((
(π B1,…,Bm, Bm+1,…,Bm+p(S))

19

Hệ quản trị CSDL @ BM HTTT
Các phép biến đổi…
8. Giao hoán của các phép toán tập hợp
U and ∩
9. Kết hợp các phép toán ⋈, U, ∩
(R  S)  T ≡ R  ( S  T )
10. Kết hợp σ với các phép toán tập hợp
σC ( R  S) ≡ (σC ( R ))  (σC ( S ))
 : U, ∩, -

20

Hệ quản trị CSDL @ BM HTTT
Thực tế
1. Break up any SELECT operations with conjunctive
operations into a cascade of SELECT operations.
•

σC1 AND C2 AND … AND Cn(R)≡σC1 (σC2 (…(σCn(R))…))

1. Push SELECT operations as far down the query tree as
possible
– σ C1 (σ C2 (R)) ≡ σ C2 (σ C1 (R)) :
πA1, A2,…,An (σ C (R))≡ σ C (πA1, A2,…,An (R))
– σC (R ⋈ S) ≡(σC (R) ) ⋈ S
– σC (R ⋈ S) ≡(σC1 (R) ) ⋈ (σC2 (S) )

3. Rearrange operations so that:
– the most restrictive SELECT operations are executed first
– Avoid CARTESIAN PRODUCT operation,
21

Hệ quản trị CSDL @ BM HTTT
Thực tế…
4. Try to combine a CARTESIAN PRODUCT operation with a
SELECT operation into a join condition.
–

σC (R X S) ≡ (R ⋈C S)

5. Break up PROJECT operations and move lists of projection
attributes as down the tree as possible by creating new
project operations
πList1 (πList2 (…(πListn (R))…))= πList1 (R)
πA1,A2…,An (σC (R)) ≡ σC (πA1,A2…,An (R))
πL (R ⋈ C S) ≡ (πA1,…,An (R))⋈ (πB1,…,Bm (S))
πL (R U S) ≡ (πL (R)) U (πL (S))

6. Identify sub trees that represent groups of operations that
can be executed by a single algorithm.
22

Hệ quản trị CSDL @ BM HTTT
Lựa chọn plan thi hành
 Bộ xử lý truy vấn có nhiệm vụ đưa ra quyết định
– Biểu thức đại số tương đương nào sẽ mang lại giải thuật
hiệu quả nhất?
– Với mỗi toán tử đại số, sử dụng giải thuật nào để thực
thi?
• Thường có nhiều cách để thi hành một phép toán logic, cần dựa
trên dữ liệu thực lưu trên thiết bị lưu trữ của quan hệ để quyết
định lựa chọn cách/giải thuật hiệu quả.

– Việc chuyển dữ liệu xử lý giữa các toán tử được thực
hiện thế nào? (ví dụ, thông qua main memory buffers,
disk buffers)

23

Hệ quản trị CSDL @ BM HTTT
Tối ưu hoá truy vấn dựa trên chi phí
 Còn gọi là tối ưu hoá hệ thống (systematic query
optimization)
 Dựa trên phương pháp ước lượng “chi phi” thi hành của kế
hoạch thi hành truy vấn.
 Thông thường kết hợp cùng với tối ưu hoá sử dụng mẹo
(heuristic query optimization), để chọn candidate plans tốt
nhất.
 Chú ý tốc độ ước lượng: đảm bảo đủ nhanh để không ảnh
hưởng nhiều đến việc thực thi truy vấn từ người dùng.

24

Hệ quản trị CSDL @ BM HTTT
Chiến thuật
 Sử dụng mẹo để thu hẹp không gian plans
– Đưa các vị từ xuống thấp nhất trong cây (để được thực
thi sớm nhất)
– Hạn chế các plan đòi hỏi cross join
– Sử dụng các cây trái nhất

 Đánh giá chi phí cho các plan còn lại
– Chú trọng việc thi hành các vòng lặp, đặc biệt đối với các
phép nối, trong một truy vấn.

 Chọn plan có chi phí thấp nhất
25

Hệ quản trị CSDL @ BM HTTT
Lựa chọn Physical Plan
Logical Query Plan
P1

P2

….

Pn Physical
plans

C1

C2

…. Cn

Costs

Pick minimum cost one
26

Hệ quản trị CSDL @ BM HTTT
Các loại chi phí
 Chi phí truy cập thiết bị lưu trữ thứ cấp
– searching, reading, writing data blocks.

 Chi phí lưu trữ
– Storing intermediate files

 Chi phí cho các phép toán cơ bản
– Searching for, sorting, merging, records, computing field values,…

 Chi phí truyền thông (đối với distributed database)
– Chi phí truyền két quả truy vấn từ database site tới query site

 Chi phí sử dụng bộ nhớ
– Lượng memory buffer cần thiết trong quá trình thực thi truy vấn
27

Hệ quản trị CSDL @ BM HTTT
Các tham số chi phí






Số lượng bộ (trong mỗi quan hệ)
Số lượng block (trong mỗi quan hệ)
Số mức mỗi chỉ mục
Số lượng block cho mức index đầu tiên
Số lượng giá trị không trùng lặp (distinct values)
trên mỗi thuộc tính

Được lưu trong catalog; chỉ cần ước lượng là đủ.

28

Hệ quản trị CSDL @ BM HTTT

Contenu connexe

En vedette

2.2 cac chuong trinh my sql
2.2 cac chuong trinh my sql2.2 cac chuong trinh my sql
2.2 cac chuong trinh my sqlTrần Thanh
 
De an-tttn-olap-slide
De an-tttn-olap-slideDe an-tttn-olap-slide
De an-tttn-olap-slideMan El
 
7. backup & restore data
7. backup & restore data7. backup & restore data
7. backup & restore dataTrần Thanh
 
R-Trees and Geospatial Data Structures
R-Trees and Geospatial Data StructuresR-Trees and Geospatial Data Structures
R-Trees and Geospatial Data StructuresAmrinder Arora
 
2.3 quan ly truy cap
2.3 quan ly truy cap2.3 quan ly truy cap
2.3 quan ly truy capTrần Thanh
 
Best for b trees
Best for b treesBest for b trees
Best for b treesDineshRaaja
 
B trees in Data Structure
B trees in Data StructureB trees in Data Structure
B trees in Data StructureAnuj Modi
 

En vedette (16)

2.2 cac chuong trinh my sql
2.2 cac chuong trinh my sql2.2 cac chuong trinh my sql
2.2 cac chuong trinh my sql
 
9. partitioning
9. partitioning9. partitioning
9. partitioning
 
De an-tttn-olap-slide
De an-tttn-olap-slideDe an-tttn-olap-slide
De an-tttn-olap-slide
 
7. backup & restore data
7. backup & restore data7. backup & restore data
7. backup & restore data
 
R-Trees and Geospatial Data Structures
R-Trees and Geospatial Data StructuresR-Trees and Geospatial Data Structures
R-Trees and Geospatial Data Structures
 
8.replication
8.replication8.replication
8.replication
 
C3 2
C3 2C3 2
C3 2
 
2.3 quan ly truy cap
2.3 quan ly truy cap2.3 quan ly truy cap
2.3 quan ly truy cap
 
Ch14 ppt
Ch14 pptCh14 ppt
Ch14 ppt
 
B Trees
B TreesB Trees
B Trees
 
Best for b trees
Best for b treesBest for b trees
Best for b trees
 
B-tree & R-tree
B-tree & R-treeB-tree & R-tree
B-tree & R-tree
 
B tree
B treeB tree
B tree
 
b+ tree
b+ treeb+ tree
b+ tree
 
B trees dbms
B trees dbmsB trees dbms
B trees dbms
 
B trees in Data Structure
B trees in Data StructureB trees in Data Structure
B trees in Data Structure
 

Similaire à 6.1 query optimization overview

Chuong 5 toi_uu_hoa_van_tin
Chuong 5 toi_uu_hoa_van_tinChuong 5 toi_uu_hoa_van_tin
Chuong 5 toi_uu_hoa_van_tinMasterCode.vn
 
Tin học ứng dụng trong kinh doanh data4u
Tin học ứng dụng trong kinh doanh data4uTin học ứng dụng trong kinh doanh data4u
Tin học ứng dụng trong kinh doanh data4uXephang Daihoc
 
Cấu trúc dữ liệu cơ bản 1
Cấu trúc dữ liệu cơ bản 1Cấu trúc dữ liệu cơ bản 1
Cấu trúc dữ liệu cơ bản 1Hồ Lợi
 
Hệ thống phân tích tình trạng giao thông: Ứng dụng công cụ xử lý dữ liệu lớn...
Hệ thống phân tích tình trạng giao thông:  Ứng dụng công cụ xử lý dữ liệu lớn...Hệ thống phân tích tình trạng giao thông:  Ứng dụng công cụ xử lý dữ liệu lớn...
Hệ thống phân tích tình trạng giao thông: Ứng dụng công cụ xử lý dữ liệu lớn...Viet-Trung TRAN
 
Kinh te-luong-doc-hieu-ket-qua-hoi-quy
Kinh te-luong-doc-hieu-ket-qua-hoi-quyKinh te-luong-doc-hieu-ket-qua-hoi-quy
Kinh te-luong-doc-hieu-ket-qua-hoi-quySon Le Van
 
Ctdl lab07-cac thuat-toan_sap_xep
Ctdl lab07-cac thuat-toan_sap_xepCtdl lab07-cac thuat-toan_sap_xep
Ctdl lab07-cac thuat-toan_sap_xepNguyễn Ngọc Hà
 
Mapreduce simplified-data-processing
Mapreduce simplified-data-processingMapreduce simplified-data-processing
Mapreduce simplified-data-processingViet-Trung TRAN
 
Research and Implementation of a New Dynamic Routertable Using Classified Mul...
Research and Implementation of a New Dynamic Routertable Using Classified Mul...Research and Implementation of a New Dynamic Routertable Using Classified Mul...
Research and Implementation of a New Dynamic Routertable Using Classified Mul...Tuan Nghia Nguyen
 
Thiet Ke Co So Du Lieu2
Thiet Ke Co So Du Lieu2Thiet Ke Co So Du Lieu2
Thiet Ke Co So Du Lieu2Vo Oanh
 
Tổng quan về cơ sở dữ liệu
Tổng quan về cơ sở dữ liệuTổng quan về cơ sở dữ liệu
Tổng quan về cơ sở dữ liệuTonhaco Bestco
 
Chuong 4-Thiet ke du lieu.pdf
Chuong 4-Thiet ke du lieu.pdfChuong 4-Thiet ke du lieu.pdf
Chuong 4-Thiet ke du lieu.pdfEcCrm
 
Bai 3 thietke_csdlpt
Bai 3 thietke_csdlptBai 3 thietke_csdlpt
Bai 3 thietke_csdlptHồ Lợi
 
csdl - buoi7-8-9
csdl - buoi7-8-9csdl - buoi7-8-9
csdl - buoi7-8-9kikihoho
 
GIAI TICH HE THONG DIEN NANG CAO - PHẦN KẾT GIỚI THIỆU PHẦN MỀM PHÂN BỐ CÔNG ...
GIAI TICH HE THONG DIEN NANG CAO - PHẦN KẾT GIỚI THIỆU PHẦN MỀM PHÂN BỐ CÔNG ...GIAI TICH HE THONG DIEN NANG CAO - PHẦN KẾT GIỚI THIỆU PHẦN MỀM PHÂN BỐ CÔNG ...
GIAI TICH HE THONG DIEN NANG CAO - PHẦN KẾT GIỚI THIỆU PHẦN MỀM PHÂN BỐ CÔNG ...Đinh Công Thiện Taydo University
 
bai giang mon sql- buoi 1.ppt
bai giang mon sql- buoi 1.pptbai giang mon sql- buoi 1.ppt
bai giang mon sql- buoi 1.pptHungHuyNguyen3
 
Dự đoán liên kết trong đồ thị tri thức
Dự đoán liên kết trong đồ thị tri thứcDự đoán liên kết trong đồ thị tri thức
Dự đoán liên kết trong đồ thị tri thứcThanh Minh Hoang
 

Similaire à 6.1 query optimization overview (20)

Chuong 5 toi_uu_hoa_van_tin
Chuong 5 toi_uu_hoa_van_tinChuong 5 toi_uu_hoa_van_tin
Chuong 5 toi_uu_hoa_van_tin
 
Tin học ứng dụng trong kinh doanh data4u
Tin học ứng dụng trong kinh doanh data4uTin học ứng dụng trong kinh doanh data4u
Tin học ứng dụng trong kinh doanh data4u
 
Cấu trúc dữ liệu cơ bản 1
Cấu trúc dữ liệu cơ bản 1Cấu trúc dữ liệu cơ bản 1
Cấu trúc dữ liệu cơ bản 1
 
Hệ thống phân tích tình trạng giao thông: Ứng dụng công cụ xử lý dữ liệu lớn...
Hệ thống phân tích tình trạng giao thông:  Ứng dụng công cụ xử lý dữ liệu lớn...Hệ thống phân tích tình trạng giao thông:  Ứng dụng công cụ xử lý dữ liệu lớn...
Hệ thống phân tích tình trạng giao thông: Ứng dụng công cụ xử lý dữ liệu lớn...
 
CSDLP3.ppt
CSDLP3.pptCSDLP3.ppt
CSDLP3.ppt
 
Kinh te-luong-doc-hieu-ket-qua-hoi-quy
Kinh te-luong-doc-hieu-ket-qua-hoi-quyKinh te-luong-doc-hieu-ket-qua-hoi-quy
Kinh te-luong-doc-hieu-ket-qua-hoi-quy
 
Ctdl lab07-cac thuat-toan_sap_xep
Ctdl lab07-cac thuat-toan_sap_xepCtdl lab07-cac thuat-toan_sap_xep
Ctdl lab07-cac thuat-toan_sap_xep
 
Mapreduce simplified-data-processing
Mapreduce simplified-data-processingMapreduce simplified-data-processing
Mapreduce simplified-data-processing
 
Research and Implementation of a New Dynamic Routertable Using Classified Mul...
Research and Implementation of a New Dynamic Routertable Using Classified Mul...Research and Implementation of a New Dynamic Routertable Using Classified Mul...
Research and Implementation of a New Dynamic Routertable Using Classified Mul...
 
Thiet Ke Co So Du Lieu2
Thiet Ke Co So Du Lieu2Thiet Ke Co So Du Lieu2
Thiet Ke Co So Du Lieu2
 
Tổng quan về cơ sở dữ liệu
Tổng quan về cơ sở dữ liệuTổng quan về cơ sở dữ liệu
Tổng quan về cơ sở dữ liệu
 
Chuong 4-Thiet ke du lieu.pdf
Chuong 4-Thiet ke du lieu.pdfChuong 4-Thiet ke du lieu.pdf
Chuong 4-Thiet ke du lieu.pdf
 
Bai 3 thietke_csdlpt
Bai 3 thietke_csdlptBai 3 thietke_csdlpt
Bai 3 thietke_csdlpt
 
Luận án: Nghiên cứu thuật toán giảm bậc mô hình và ứng dụng
Luận án: Nghiên cứu thuật toán giảm bậc mô hình và ứng dụngLuận án: Nghiên cứu thuật toán giảm bậc mô hình và ứng dụng
Luận án: Nghiên cứu thuật toán giảm bậc mô hình và ứng dụng
 
Giải ngân hàng Hệ thống nhúng PTIT - thầy Cước
Giải ngân hàng Hệ thống nhúng PTIT - thầy CướcGiải ngân hàng Hệ thống nhúng PTIT - thầy Cước
Giải ngân hàng Hệ thống nhúng PTIT - thầy Cước
 
Luận án: Xây dựng thuật toán điều khiển dự báo theo mô hình, HAY
Luận án: Xây dựng thuật toán điều khiển dự báo theo mô hình, HAYLuận án: Xây dựng thuật toán điều khiển dự báo theo mô hình, HAY
Luận án: Xây dựng thuật toán điều khiển dự báo theo mô hình, HAY
 
csdl - buoi7-8-9
csdl - buoi7-8-9csdl - buoi7-8-9
csdl - buoi7-8-9
 
GIAI TICH HE THONG DIEN NANG CAO - PHẦN KẾT GIỚI THIỆU PHẦN MỀM PHÂN BỐ CÔNG ...
GIAI TICH HE THONG DIEN NANG CAO - PHẦN KẾT GIỚI THIỆU PHẦN MỀM PHÂN BỐ CÔNG ...GIAI TICH HE THONG DIEN NANG CAO - PHẦN KẾT GIỚI THIỆU PHẦN MỀM PHÂN BỐ CÔNG ...
GIAI TICH HE THONG DIEN NANG CAO - PHẦN KẾT GIỚI THIỆU PHẦN MỀM PHÂN BỐ CÔNG ...
 
bai giang mon sql- buoi 1.ppt
bai giang mon sql- buoi 1.pptbai giang mon sql- buoi 1.ppt
bai giang mon sql- buoi 1.ppt
 
Dự đoán liên kết trong đồ thị tri thức
Dự đoán liên kết trong đồ thị tri thứcDự đoán liên kết trong đồ thị tri thức
Dự đoán liên kết trong đồ thị tri thức
 

Plus de Trần Thanh (11)

07 trigger view
07 trigger view07 trigger view
07 trigger view
 
4 trigger
4  trigger4  trigger
4 trigger
 
Chuan
ChuanChuan
Chuan
 
C4 1 tuan 14
C4 1 tuan 14C4 1 tuan 14
C4 1 tuan 14
 
C3 2 (tuan6,7)
C3 2 (tuan6,7)C3 2 (tuan6,7)
C3 2 (tuan6,7)
 
C3 1
C3 1C3 1
C3 1
 
C2 2
C2 2C2 2
C2 2
 
C2 1
C2 1C2 1
C2 1
 
C1
C1C1
C1
 
C4 1
C4 1C4 1
C4 1
 
VoIP with Opensips
VoIP with OpensipsVoIP with Opensips
VoIP with Opensips
 

6.1 query optimization overview

  • 1. Hệ quản trị cơ sở dữ liệu Query Optimization Dư Phương Hạnh Bộ môn Hệ thống thông tin Khoa CNTT, trường Đại học Công nghệ Đại học Quốc gia Hanoi hanhdp@vnu.edu.vn
  • 2. Outline  Tổng quan  Không gian physical plans  Các chiến lược tối ưu hoá – Dựa trên kinh nghiệm – Dựa trên chi phí  Tổng kết Tài liệu tham khảo: Chap 12+13+14 of Ramakrishnan 2 Hệ quản trị CSDL @ BM HTTT
  • 3. Giới thiệu  Phần lớn các truy vấn được viết bởi ngôn ngữ bậc cao phi thủ tục như SQL, QBE, OQL.  Các truy vấn này phải được chuyển sang các biểu thức đại số quan hệ tương đương (query tree).  Các biểu thức này có chứa các toán tử đại số quan hệ, mỗi toán tử có một chi phí (cost) thực thi tương ứng.  Với một mệnh đề truy vấn, có thể chuyển đổi tương ứng với nhiều cây truy vấn, việc chọn lựa plan thực thi nào là dựa trên đánh giá chi phí. – Các cây truy vấn tương đương được sinh ra nhờ các phép biến đổi tương đương. 3 Hệ quản trị CSDL @ BM HTTT
  • 4. Quy trình xử lý truy vấn SQL query parse query tree Query rewriting statistics logical query plan Physical plan generation physical query plan execute result 4 Hệ quản trị CSDL @ BM HTTT
  • 5. Vấn đề là… Chọn best plan từ không gian physical plans Khó vì: không gian này có thể rất lớn do  Có nhiều phép biến đổi tương đương  Các phép toán vật lý khác nhau cho cùng một toán tử logic – nested loop join, hash join, sort-merge join – index-scan, table-scan  Các mẫu cây khác nhau  Các chiến thuật xử lý gối đầu (pipelining, …) 5 Hệ quản trị CSDL @ BM HTTT
  • 6. Các chiến lược 1: Chọn một plan bất kỳ – Bad plans can be really bad! 2: Dựa vào mẹo (heuristics) – Ví dụ: Sử dụng index nhiều nhất có thể với HQTCSDL MySQL 3: Dựa trên chi phí – Liệt kê, ước lượng chi phí thi hành, chọn cái tốt nhất – Chú ý các vòng lặp trong các plans 4: Hybrid 6 Hệ quản trị CSDL @ BM HTTT
  • 7. Thực tế  Hybrid  Sử dụng mẹo (heuristics, còn gọi là các luật viết lại - rewrite rules) – Loại đi những plans “xấu nhất” – Tránh bỏ xót những plans tốt  Dựa trên ước lượng chi phí – Ước lượng chi phí thi hành đối với mỗi plan, từ đó chọn plan có chi phí tốt nhất 7 Hệ quản trị CSDL @ BM HTTT
  • 8. SQL query parse parse tree Query rewriting statistics Initial logical plan Rewrite rules Logical plan logical query plan Physical plan generation “Best” logical plan physical query plan execute result 8 Hệ quản trị CSDL @ BM HTTT
  • 9. Tại sao cần viết lại truy vấn?  Giảm bớt số lượng physical plans nhờ: – Loại bỏ các điều kiện/toán tử dư thừa – Sử dụng cá luật giúp cải thiện hiệu năng truy vấn  Tiền xử lý – Chuyển các truy vấn sang dạng dễ dàng xử lý nhất  Giảm thời gian đáng kể quá trình thi hành truy vấn (kết quả không bị ảnh hưởng) 9 Hệ quản trị CSDL @ BM HTTT
  • 10. Các luật viết lại truy vấn  Luật chuyển đổi logical plan  Các biến đổi tương đương trong đại số quan hệ  Đưa các vị từ xuống dưới  Thực thi các phép chiếu sớm nhất có thể  Tránh tối đa nhân chéo cross-join  Sử dụng cây trái nhất  Chuyển truy vấn lồng  Joins  Sử dụng các ràng buộc, chẳng hạn unique 10 Hệ quản trị CSDL @ BM HTTT
  • 11. Ví dụ Select B,D From R,S Where R.A = “c” ∧ R.C=S.C <Query> <SFW> SELECT <SelList> FROM <FromList> WHERE <Cond> <Attribute> <SelList> <RelName> <FromList> <Cond> AND B <Attribute> D R <Cond> <RelName> <Attr> <Op> <Const> S R.A = “c” <Attr> <Op> <Attr> 11 R.C = S.C Hệ quản trị CSDL @ BM HTTT
  • 12. Parsing  Kiểm tra ngữ nghĩa (semantic) – Lịệu các thuộc tính của phép chiếu có tồn tại trong các quan hệ xuất hiện ở mệnh đề FROM? – Có thuộc tính trùng lặp hay không? – Kiểu dữ liệu có chuẩn không, ví dụ: R.A > 17.5 12 Hệ quản trị CSDL @ BM HTTT
  • 13. Initial Logical Plan πB,D Select B,D From R,S Where R.A = “c” ∧ R.C=S.C σR.A = “c” Λ R.C = S.C X R S Relational Algebra: ΠB,D [ σR.A=“c”∧ R.C = S.C (RXS)] 13 Hệ quản trị CSDL @ BM HTTT
  • 14. Apply Rewrite Rule (1) πB,D πB,D σR.A = “c” Λ R.C = S.C σR.C = S.C σR.A = “c” X R S X R S ΠB,D [ σR.C=S.C [σR.A=“c”(R X S)]] 14 Hệ quản trị CSDL @ BM HTTT
  • 15. Apply Rewrite Rule (2) πB,D σR.C = S.C σR.A = “c” X R S πB,D σR.C = S.C X σR.A = “c” S R ΠB,D [ σR.C=S.C [σR.A=“c”(R)] X S] 15 Hệ quản trị CSDL @ BM HTTT
  • 16. Apply Rewrite Rule (3) πB,D πB,D σR.C = S.C Natural join σR.A = “c” X σR.A = “c” R 16 S ΠB,D [[σR.A=“c”(R)] S R S] Hệ quản trị CSDL @ BM HTTT
  • 17. Các phép biến đổi tương đương 1. Phân phối σ σC1 AND C2 AND …AND Cn(R)≡σC1(σC2(…(σCn(R))…) 2. Giao hoán của σ σ C1 (σ C2 (R)) ≡ σ C2 (σ C1 (R)) 3. Phân phối của Π π list1(π list2 …(π listn(R))…) ≡ π list1(R) 4. Giao hoán σ với Π π A1, A2,…,An (σ C (R))≡ σ C (π A1, A2,…,An (R)) C involves only A1,…,An 17 Hệ quản trị CSDL @ BM HTTT
  • 18. Các phép biến đổi… 5. Giao hoán của ⋈ ( or × ) R⋈ CS≡S⋈ CR meaning 6. Giao hoán σ với ⋈ ( or × ) - σC (R ⋈ S) ≡(σC (R) ) ⋈ S attributes in C involve only attributes of R - σC (R ⋈ S) ≡(σC1 (R) ) ⋈ (σC2 (S) ) C1 (C2) involves only attribute of R(S) 18 Hệ quản trị CSDL @ BM HTTT
  • 19. Các phép biến đổi… 7. Giao hoán π với ⋈ ( or × ) π L( R ⋈ C S)≡(π A1,…,An (R)) ⋈ C (π B1,…,Bm (S)) L = { A1,…, An, B1,…, Bm } join condition C only involves L General Form π L ( R ⋈ C S) ≡ π L ((π A1,…,An, An+1,…,An+k (R)) ⋈ (( (π B1,…,Bm, Bm+1,…,Bm+p(S)) 19 Hệ quản trị CSDL @ BM HTTT
  • 20. Các phép biến đổi… 8. Giao hoán của các phép toán tập hợp U and ∩ 9. Kết hợp các phép toán ⋈, U, ∩ (R  S)  T ≡ R  ( S  T ) 10. Kết hợp σ với các phép toán tập hợp σC ( R  S) ≡ (σC ( R ))  (σC ( S ))  : U, ∩, - 20 Hệ quản trị CSDL @ BM HTTT
  • 21. Thực tế 1. Break up any SELECT operations with conjunctive operations into a cascade of SELECT operations. • σC1 AND C2 AND … AND Cn(R)≡σC1 (σC2 (…(σCn(R))…)) 1. Push SELECT operations as far down the query tree as possible – σ C1 (σ C2 (R)) ≡ σ C2 (σ C1 (R)) : πA1, A2,…,An (σ C (R))≡ σ C (πA1, A2,…,An (R)) – σC (R ⋈ S) ≡(σC (R) ) ⋈ S – σC (R ⋈ S) ≡(σC1 (R) ) ⋈ (σC2 (S) ) 3. Rearrange operations so that: – the most restrictive SELECT operations are executed first – Avoid CARTESIAN PRODUCT operation, 21 Hệ quản trị CSDL @ BM HTTT
  • 22. Thực tế… 4. Try to combine a CARTESIAN PRODUCT operation with a SELECT operation into a join condition. – σC (R X S) ≡ (R ⋈C S) 5. Break up PROJECT operations and move lists of projection attributes as down the tree as possible by creating new project operations πList1 (πList2 (…(πListn (R))…))= πList1 (R) πA1,A2…,An (σC (R)) ≡ σC (πA1,A2…,An (R)) πL (R ⋈ C S) ≡ (πA1,…,An (R))⋈ (πB1,…,Bm (S)) πL (R U S) ≡ (πL (R)) U (πL (S)) 6. Identify sub trees that represent groups of operations that can be executed by a single algorithm. 22 Hệ quản trị CSDL @ BM HTTT
  • 23. Lựa chọn plan thi hành  Bộ xử lý truy vấn có nhiệm vụ đưa ra quyết định – Biểu thức đại số tương đương nào sẽ mang lại giải thuật hiệu quả nhất? – Với mỗi toán tử đại số, sử dụng giải thuật nào để thực thi? • Thường có nhiều cách để thi hành một phép toán logic, cần dựa trên dữ liệu thực lưu trên thiết bị lưu trữ của quan hệ để quyết định lựa chọn cách/giải thuật hiệu quả. – Việc chuyển dữ liệu xử lý giữa các toán tử được thực hiện thế nào? (ví dụ, thông qua main memory buffers, disk buffers) 23 Hệ quản trị CSDL @ BM HTTT
  • 24. Tối ưu hoá truy vấn dựa trên chi phí  Còn gọi là tối ưu hoá hệ thống (systematic query optimization)  Dựa trên phương pháp ước lượng “chi phi” thi hành của kế hoạch thi hành truy vấn.  Thông thường kết hợp cùng với tối ưu hoá sử dụng mẹo (heuristic query optimization), để chọn candidate plans tốt nhất.  Chú ý tốc độ ước lượng: đảm bảo đủ nhanh để không ảnh hưởng nhiều đến việc thực thi truy vấn từ người dùng. 24 Hệ quản trị CSDL @ BM HTTT
  • 25. Chiến thuật  Sử dụng mẹo để thu hẹp không gian plans – Đưa các vị từ xuống thấp nhất trong cây (để được thực thi sớm nhất) – Hạn chế các plan đòi hỏi cross join – Sử dụng các cây trái nhất  Đánh giá chi phí cho các plan còn lại – Chú trọng việc thi hành các vòng lặp, đặc biệt đối với các phép nối, trong một truy vấn.  Chọn plan có chi phí thấp nhất 25 Hệ quản trị CSDL @ BM HTTT
  • 26. Lựa chọn Physical Plan Logical Query Plan P1 P2 …. Pn Physical plans C1 C2 …. Cn Costs Pick minimum cost one 26 Hệ quản trị CSDL @ BM HTTT
  • 27. Các loại chi phí  Chi phí truy cập thiết bị lưu trữ thứ cấp – searching, reading, writing data blocks.  Chi phí lưu trữ – Storing intermediate files  Chi phí cho các phép toán cơ bản – Searching for, sorting, merging, records, computing field values,…  Chi phí truyền thông (đối với distributed database) – Chi phí truyền két quả truy vấn từ database site tới query site  Chi phí sử dụng bộ nhớ – Lượng memory buffer cần thiết trong quá trình thực thi truy vấn 27 Hệ quản trị CSDL @ BM HTTT
  • 28. Các tham số chi phí      Số lượng bộ (trong mỗi quan hệ) Số lượng block (trong mỗi quan hệ) Số mức mỗi chỉ mục Số lượng block cho mức index đầu tiên Số lượng giá trị không trùng lặp (distinct values) trên mỗi thuộc tính Được lưu trong catalog; chỉ cần ước lượng là đủ. 28 Hệ quản trị CSDL @ BM HTTT