6 1 queryoptimization overview

26 333 0
6 1 queryoptimization overview

Đ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

Hệ quản trị sở 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 kinh nghiệm – Dựa chi phí  Tổng kết Tài liệu tham khảo: Chap 12+13+14 of Ramakrishnan Hệ quản trị CSDL @ BM HTTT Giới thiệu  Phần lớn truy vấn viết ngôn ngữ bậc cao phi thủ tục SQL, QBE, OQL  Các truy vấn phải chuyển sang biểu thức đại số quan hệ tương đương (query tree)  Các biểu thức có chứa tốn tử đại số quan hệ, tốn tử có chi phí (cost) thực thi tương ứng  Với mệnh đề truy vấn, chuyển đổi tương ứng với nhiều truy vấn, việc chọn lựa plan thực thi dựa đánh giá chi phí – Các truy vấn tương đương sinh nhờ phép biến đổi tương đương 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 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 lớn  Có nhiều phép biến đổi tương đương  Các phép toán vật lý khác cho toán tử logic – nested loop join, hash join, sort-merge join – index-scan, table-scan  Các mẫu khác  Các chiến thuật xử lý gối đầu (pipelining, …) Hệ quản trị CSDL @ BM HTTT Các chiến lược 1: Chọn plan – Bad plans can be really bad! 2: Dựa vào mẹo (heuristics) – Ví dụ: Sử dụng index nhiều với HQTCSDL MySQL 3: Dựa chi phí – Liệt kê, ước lượng chi phí thi hành, chọn tốt – Chú ý vòng lặp plans 4: Hybrid Hệ quản trị CSDL @ BM HTTT Thực tế  Hybrid  Sử dụng mẹo (heuristics, gọi luật viết lại - rewrite rules) – Loại plans “xấu nhất” – Tránh bỏ xót plans tốt  Dựa ước lượng chi phí – Ước lượng chi phí thi hành plan, từ chọn plan có chi phí tốt 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 Hệ quản trị CSDL @ BM HTTT Tại cần viết lại truy vấn?  Giảm bớt số lượng physical plans nhờ: – Loại bỏ điều kiện/toán tử dư thừa – Sử dụng cá luật giúp cải thiện hiệu truy vấn  Tiền xử lý – Chuyển truy vấn sang dạng dễ dàng xử lý  Giảm thời gian đáng kể trình thi hành truy vấn (kết không bị ảnh hưởng) 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 đại số quan hệ  Đưa vị từ xuống  Thực thi phép chiếu sớm  Tránh tối đa nhân chéo cross-join  Sử dụng trái  Chuyển truy vấn lồng  Joins 10 Hệ quản trị CSDL @ BM HTTT Parsing  Kiểm tra ngữ nghĩa (semantic) – Liệu thuộc tính phép chiếu có tồn quan hệ xuất mệnh đề FROM? – Có thuộc tính trùng lặp hay khơng? – Kiểu 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 Phân phối σ σC1 AND C2 AND …AND Cn(R)≡σC1(σC2(…(σCn(R))…) Giao hoán σ σ C1 (σ C2 (R)) ≡ σ C2 (σ C1 (R)) Phân phối Π π list1(π list2 …(π listn(R))…) ≡ π list1(R) 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… Giao hốn ⋈ ( or × ) R⋈CS≡S⋈CR meaning Giao hố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… Giao hố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… Giao hoán phép toán tập hợp U and ∩ Kết hợp phép toán ⋈, U, ∩ (R  S)  T ≡ R  ( S  T ) 10 Kết hợp σ với 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 định – Biểu thức đại số tương đương mang lại giải thuật hiệu nhất? – Với toán tử đại số, sử dụng giải thuật để thực thi? • Thường có nhiều cách để thi hành phép toán logic, cần dựa liệu thực lưu thiết bị lưu trữ quan hệ để định lựa chọn cách/giải thuật hiệu – Việc chuyển liệu xử lý tốn tử thực 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 chi phí  Cịn gọi tối ưu hố hệ thống (systematic query optimization)  Dựa phương pháp ước lượng “chi phi” thi hành kế hoạch thi hành truy vấn  Thông thường kết hợp với tối ưu hoá sử dụng mẹo (heuristic query optimization), để chọn candidate plans tố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 vị từ xuống thấp (để thực thi sớm nhất) – Hạn chế plan đòi hỏi cross join – Sử dụng trái  Đánh giá chi phí cho plan lại – Chú trọng việc thi hành vòng lặp, đặc biệt phép nối, truy vấn  Chọn plan có chi phí thấp 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 phép tố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 truy vấn từ database site tới query site  Chi phí sử dụng nhớ – Lượng memory buffer cần thiết trình thực thi truy vấn 25 Hệ quản trị CSDL @ BM HTTT Các tham số chi phí  Số lượng (trong quan hệ)  Số lượng block (trong quan hệ)  Số mức mục  Số lượng block cho mức index  Số lượng giá trị không trùng lặp (distinct values) thuộc tính Được lưu catalog; cần ước lượng đủ 26 Hệ quản trị CSDL @ BM HTTT

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

Từ khóa liên quan

Mục lục

  • Query Optimization

  • Outline

  • Giới thiệu

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

  • Vấn đề là…

  • Các chiến lược

  • Thực tế

  • PowerPoint Presentation

  • Tại sao cần viết lại truy vấn?

  • Các luật viết lại truy vấn

  • Ví dụ

  • Parsing

  • Initial Logical Plan

  • Apply Rewrite Rule (1)

  • Apply Rewrite Rule (2)

  • Apply Rewrite Rule (3)

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

  • Các phép biến đổi…

  • Slide 19

  • Slide 20

Tài liệu cùng người dùng

Tài liệu liên quan