Tải bản đầy đủ (.ppt) (26 trang)

6 1 queryoptimization overview

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (230.53 KB, 26 trang )

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



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

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>
R.C

11

=

S.C

Hệ quản trị CSDL @ BM HTTT


Parsing


Kiểm tra ngữ nghĩa (semantic)

– Liệ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

17

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

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,…
A1,…,An, An+1,…
An+1,…,An+k (R)) ⋈


19

(S))

B1,…
B1,…,Bm, Bm+1,…
Bm+1,…,Bm+p

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


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)


21

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.

22

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

23

Hệ quản trị CSDL @ BM HTTT


Lựa chọn Physical Plan
Logical Query Plan
P1

C1

P2

C2

….

….

Pn

Cn

Physical
plans


Pick minimum cost one

Costs

24

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
25

Hệ quản trị CSDL @ BM HTTT



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×