1. Trang chủ
  2. » Công Nghệ Thông Tin

6 1 queryoptimization overview

26 333 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 26
Dung lượng 365,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

 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 t

Trang 1

Hệ quản trị cơ sở dữ liệu

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

Query Optimization

Trang 2

 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

Trang 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

Trang 4

parseQuery rewriting

Physical plan generation

execute

result

SQL queryquery tree

logical query planstatistics

physical query plan

Quy trình xử lý truy vấn

Trang 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

Trang 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

Trang 7

 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

Trang 8

physical query plan

Initial logical plan

“Best” logical planLogical plan

Rewrite rules

Trang 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)

Trang 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

Trang 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 <Cond>

B <Attribute> R <RelName>

S

<Attr> <Op> <Const>

<Attr> <Op> <Attr> R.A = “c”

D

Trang 12

 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

Trang 13

Initial Logical Plan

Relational Algebra : B,D [ R.A=“c” R.C = S.C (RXS)]

Trang 14

Apply Rewrite Rule (1)

Trang 15

Apply Rewrite Rule (2)

Trang 16

Apply Rewrite Rule (3)

Trang 17

Các phép biến đổi tương đương

1 Phân phối σ

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

2 Giao hoán của σ

σ C1 C2 (R)) ≡σ σ C2C1 (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

Trang 18

5 Giao hoán của ( or ⋈ ( or  )

Trang 19

7 Giao hoán  với ( or ⋈ ( or  )

Trang 20

8 Giao hoán của các phép toán tập hợp

Trang 21

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)

Trang 22

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

Trang 23

Chiến thuật

– Đư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

– 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

Trang 24

Lựa chọn Physical Plan

Logical Query Plan

P1 P2 … Pn

C1 C2 … Cn

Pick minimum cost one

Physical plans

Costs

Trang 25

Các loại chi phí

– searching, reading, writing data blocks.

– Storing intermediate files

– Searching for, sorting, merging, records, computing field values,…

– Chi phí truyền két quả truy vấn từ database site tới query site

Trang 26

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

Ngày đăng: 25/10/2016, 23:25

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm