CSDL1 6toiuu trungtt dhbkhn

24 695 0
CSDL1 6toiuu trungtt dhbkhn

Đ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

Tối ưu hoá truy vấn SQL Trần Việt Trung is.hust.edu.vn~trungtv 1 Xử lý câu hỏi truy vấn Câu lệnh SQL Phân tích cú pháp (parser) Biểu thức ĐSQH Bộ tối ưu (optimizer) Biểu thức ĐSQH tối ưu Bộ sinh mã (code generator) Chương trình tối ưu 2 Xử lý và tối ưu truy vấn 3 Tối ưu hoá •  Biến đổi biểu thức ĐSQH để tìm 1 biểu thức hiệu quả •  Tối ưu dựa trên cấu trúc và nội dung của dữ liệu •  Nâng cao hiệu quả thực hiện câu hỏi trên 1 hay nhiều tiêu chí: thời gian, sử dụng bộ nhớ, ... •  Lưu ý: –  Không nhất thiết phải tìm biểu thức tối ưu nhất –  Chú ý tới tài nguyên sử dụng cho tối ưu 4 Ánh xạ truy vấn SQL ra DSQH 5 Kỹ thuật tối ưu hoá •  2 kỹ thuật chính –  Tối ưu logic (rewriting) –  Tối ưu vật lý (access methods) •  Mục đích của các kỹ thuật tối ưu –  Giảm số bản ghi –  Giảm kích thước bản ghi •  Ví dụ WAGON (NW, TYPE, COND, STATION, CAPACITY, WEIGHT) TRAIN (NT, NW) WAGON (NW, TYPE...) TRAIN (NT, NW) NW NT = 4002 TYPE 6 Nội dung ü Giới thiệu chung •  Tối ưu logic •  Tối ưu vật lý •  Mô hình giá 7 Tối ưu hoá logic •  Sử dụng các phép biến đổi tương đương để tìm ra biểu thức ĐSQH tốt •  Gồm 2 giai đoạn – Biến đổi dựa trên ngữ nghĩa – Biến đổi dựa trên tính chất của các phép toán ĐSQH 8 Tối ưu dựa trên ngữ nghĩa •  Mục đích: –  Dựa trên các ràng buộc dữ liệu để xác định các biểu thức tương đương –  Viết lại câu hỏi trên khung nhìn dựa trên các định nghĩa của khung nhìn •  Ví dụ EMPLOYEE (FirstName, LastName, SSN, Birthday, Adrresse, NoDept) DEPARTEMENT (DNO, DName, SSNManager) PROJECT (PNO, PName, PLocation, DNo) WORKIN (ESSN, PNO, Heures) 9 Tên của các nhân viên sinh sau ngày 300170 và làm việc cho dự án Esprit EMPLOYE Birthday > “300170 PROJECT PName = “Esprit” WORKIN ESSN=SSN NoProj = PNO Result Name Đồ thị kết nối các quan hệ WORKIN.ESSN EMPLOYEE. SSN PROJECT.PNO WORKIN. PNO PROJECT.PNO “Esprit” EMPLOYEE. Birthday “300170” Đồ thị kết nối các thuộc tính = = = > EMPLOYEE (Name, SSN, Birthday, Adrresse, NoDept) DEPARTEMENT (DNO, DName, SSNManager) PROJECT (PNO, PName, PLocation, DNo) WORKIN (ESSN, NoProj, Heures) 10 Tối ưu dựa trên ngữ nghĩa (2) •  Loại bỏ các đồ thị con không liên kết trong đồ thị kết nối các quan hệ •  Kiểm tra mâu thuẫn trong đồ thị kết nối các thuộc tính •  Biến đổi câu hỏi tương đương 11 Tính chất của phép toán ĐSQH A ~ tập các thuộc tính, C ~ biểu thức điều kiện 1.  Phép chiếu và phép chọn 2. Tính giao hoán đối với phép chọn và chiếu ΠA(R) => Π A (Π A1 (R) nếu A ⊆ A1 σ (R) => σ (σ (R)) nếu C = C1C2 C C1 C2 σ (σ (R)) C1 C2 => σ ( C2 σC1 (R)) σ (Π (R)) C1 A2 => ΠA2 (σ C1 (R)) Π (σ (R)) A1 C2 => σ ( C2 ΠA1 (R)) nếu các thuộc tính của C2 thuộc A1 Π (Π (R)) A1 A2 => ΠA1 (R) nếu A1 ⊆ A2 12 Tính chất của phép toán ĐSQH (2) 3.  Tính giao hoán và kết hợp của các phép toán , ∩, ∪, , x R X S => S X R R S => S R R ∩ S => S ∩ R R ∪ S => S ∪ R (R X S) X T => R X (S X T) (R ∩ S) ∩ T => R ∩ (S ∩ T) (R ∪ S) ∪ T => R ∪ (S ∪ T) (R S) T => R (S T) C1 C2 C1 C2 chỉ nếu Attr(C2) ⊆ Attr(S) U Attr(T) 13 Tính chất của phép toán ĐSQH (3) 4.  Tính phân phối σ và Π trên các phép toán , ∩, ∪, , X Nếu C = (CR CS) và nếu Attr(CR) ⊆ R và Attr(CS) ⊆ S thì : σ (R S) => σ (R) σ (S) C JC CR JC CS σ (R X S) => σ (R) X σ (S) C CR CS 14 Biến đổi biểu thức ĐSQH T1 R: F1 ∧ F2 ∧ ... Fn ((...(R:F1) : F2 ):...):Fn _________________________________________________________________ T2 (RY) Z RZ nᾊ u Z ⊆ Y _________________________________________________________________ T3 (RY) :F (X) (R :F(X)) Y nᾊ u X ⊆ Y (R: F(X)) Y (RX ∪ Y) : F(X) ) Y nᾊ u X ⊄ Y _________________________________________________________________ T4 (R(X) x S(Y)) : F(Z) (R(X):F) x S(Y) nᾊ u Z ⊆ X (R(X) x S(Y)) : F(Z1)∧ F(Z2) (R(X):F(Z1)) x (S(Y): F(Z2)) nᾊ u Z1 ⊆ X và Z2 ⊆ Y _________________________________________________________________ T5 (R ∪ S): F (R:F) ∪ (S:F) _________________________________________________________________ T6 (R S): F (R:F) S _________________________________________________________________ T7 (R(X) x S(Y))Z RX ∩ Z x SY ∩ Z _________________________________________________________________ T8 (R ∪ S) Z (RZ) ∪ (SZ) _________________________________________________________________ 15 Trình tự áp dụng •  Khai triển phép lựa chọn dựa trên nhiều điều kiện: T1 •  Hoán vị phép chọn với tích đềcác, hợp, trừ: T3, T4, T5, T6 •  Hoán vị phép chiếu với tích đềcác, hợp : T2, T7, T8 •  Nhóm các điều kiện chọn bởi T1 và áp dụng T2 để loại các phép chiếu dư thừa 16 Bài tập 17 Lựa chọn cách truy nhập dữ liệu •  Giả thiết – TRAIN : có chỉ số trên NT – WAGON : có chỉ số trên NW •  Thực hiện phép kết nối – Lựa chọn 1 giải thuật. – Lựa chọn cách truy nhập các quan hệ WAGON (NW, TYPE...) TRAIN (NT, NW) NW NT = 4002 TYPE 18 Relation S Relation R Nestedloopjoin (NLJ) •  Nguyên tắc –  Duyệt 1 lần trên quan hệ ngoài R lặp trên quan hệ trong S •  Các mở rộng của thuật toán –  Tuplebased NLJ, blockbased NLJ, indexbased NLJ SOURCE S SOURCE R Tuple R Tuple R Tuple S Matching 19 Thực hiện như thế nào? WAGON (NW, TYPE...) TRAIN (NT, NW) NW NT = 4002 TYPE 20 Thông tin về các quan hệ • Kích thước của các quan hệ và bản ghi • Thông tin về các thuộc tính • Thông tin về các chỉ số Relation Cardinality Record size WAGON 200000 60 TRAIN 60000 30 TRAFFIC 80000 20 Attribute Cardinality Size min max NW 200000 20 TYPE 200 5 COND 5 15 CAPACITY 400 15 545 NT 2000 10 DATE 800 6 Relation Attributes Unique Type Num of pages WAGON NW Yes Principal 45 WAGON TYPE No Secondary 25 WAGON COND No Secondary 30 WAGON CAPACITY No Secondary 25 TRAIN NT No Principal 18 TRAFFIC NT No Principal 20 TRAFFIC DATE no Principal 40 Relation Cardinality Record size (num of rec.page) Num. of pages (NP’) WAGON 200000 60(100) 1500(375) TRAIN 60000 30 (200) 225(60) TRAFFIC 80000 20 (300) 200(60) 21 Mô hình giá • Chí phí thực hiện câu hỏi phụ thuộc: –  đọcghi bộ nhớ ngoài (số trang nhớ) – Kích thước dữ liệu phải xử lý • Chi phí truy nhập dữ liệu – Đọc ghi dữ liệu – xử lý – Truyền thông giữa các trạm làm việc CTA = σ NBPAGES + τ NBNUPLETS (+ µ NBMESSAGES) • Trọng số » σ = trọng số đọcghi dữ liệu (ví dụ = 1) » τ = trọng số xử lý của CPU (ví dụ = 13) » µ = trọng số truyền dữ liệu 22 Tối ưu hoá dựa trên mô hình giá •  Mục đích: Chọn phương án thực hiện câu hỏi với chi phí thấp nhất •  Nhận xét: – Chi phí cho liệt kê các phương án trả lời câu hỏi – Chi phí cho lượng hoá các phương án theo mô hình giá Ø Có thể sử dụng các « mẹo » (heuristics) để giảm không gian tìm kiếm của câu hỏi 23 Kết luận •  Tối ưu hoá nhằm tìm phương án tốt nhất để thực hiện một câu hỏi – Cần lưu ý: chí phí thực hiện tối ưu hoá và chi phí thực hiện câu hỏi •  Các kỹ thuật tối ưu – Logic : kiểm tra điều kiện ràng buộc của các thuộc tínhquan hệ và điều kiện lựa chọn trong câu hỏi, biến đổi tương đương các biểu thức ĐSQH – Vật lý : tổ chức vật lý của dữ liệu trên đĩa, mô hình giá Ø Không nhất thiết phải áp dụng tất cả các kỹ thuật trên khi thực hiện tối ưu hoá 1 câu hỏi 24

Tối ưu hoá truy vấn SQL Trần Việt Trung is.hust.edu.vn/~trungtv/ Xử lý câu hỏi truy vấn Câu lệnh SQL Phân tích cú pháp (parser) Biểu thức ĐSQH Bộ tối ưu (optimizer) Biểu thức ĐSQH tối ưu Bộ sinh mã (code generator) Chương trình tối ưu Xử lý tối ưu truy vấn Tối ưu hoá •  Biến đổi biểu thức ĐSQH để tìm biểu thức hiệu •  Tối ưu dựa cấu trúc nội dung liệu •  Nâng cao hiệu thực câu hỏi hay nhiều tiêu chí: thời gian, sử dụng nhớ, •  Lưu ý: –  Không thiết phải tìm biểu thức tối ưu –  Chú ý tới tài nguyên sử dụng cho tối ưu Ánh xạ truy vấn SQL DSQH Kỹ thuật tối ưu hoá •  kỹ thuật –  Tối ưu logic (rewriting) –  Tối ưu vật lý (access methods) TYPE •  Mục đích kỹ thuật tối ưu –  Giảm số ghi –  Giảm kích thước ghi NW •  Ví dụ WAGON (NW, TYPE, COND, STATION, CAPACITY, WEIGHT) TRAIN (NT, NW) WAGON (NW, TYPE ) NT = 4002 TRAIN (NT, NW) Nội dung ü Giới thiệu chung •  Tối ưu logic •  Tối ưu vật lý •  Mô hình giá Tối ưu hoá logic •  Sử dụng phép biến đổi tương đương để tìm biểu thức ĐSQH tốt •  Gồm giai đoạn –  Biến đổi dựa ngữ nghĩa –  Biến đổi dựa tính chất phép toán ĐSQH Tối ưu dựa ngữ nghĩa •  Mục đích: –  Dựa ràng buộc liệu để xác định biểu thức tương đương –  Viết lại câu hỏi khung nhìn dựa định nghĩa khung nhìn •  Ví dụ EMPLOYEE (FirstName, LastName, SSN, Birthday, Adrresse, NoDept) DEPARTEMENT (DNO, DName, SSNManager) PROJECT (PNO, PName, PLocation, DNo) WORK-IN (ESSN, PNO, Heures) EMPLOYEE (Name, SSN, Birthday, Adrresse, NoDept) DEPARTEMENT (DNO, DName, SSNManager) PROJECT (PNO, PName, PLocation, DNo) WORK-IN (ESSN, NoProj, Heures) Tên nhân viên sinh sau ngày 30/01/70 làm việc cho dự án "Esprit" Result WORK-IN.ESSN Name = EMPLOYEE SSN = WORK-IN PNO WORK-IN PROJECT.PNO NoProj = PNO ESSN=SSN EMPLOYE PROJECT PROJECT.PNO = PName = “Esprit” Birthday > “30/01/70 Đồ thị kết nối quan hệ EMPLOYEE Birthday > “Esprit” “30/01/70” Đồ thị kết nối thuộc tính 10 Tối ưu dựa ngữ nghĩa (2) •  Loại bỏ đồ thị không liên kết đồ thị kết nối quan hệ •  Kiểm tra mâu thuẫn đồ thị kết nối thuộc tính •  Biến đổi câu hỏi tương đương 11 Tính chất phép toán ĐSQH A ~ tập thuộc tính, C ~ biểu thức điều kiện 1.  Phép chiếu phép chọn ΠA(R) => ΠA (ΠA1 (R) A ⊆ A1 σ C (R) => σ (σ (R)) C = C1^C2 C1 C2 Tính giao hoán phép chọn chiếu σ (σ (R)) => σ (σ (R)) C1 C2 C2 C1 σ (Π (R)) => Π (σ (R)) C1 A2 A2 C1 thuộc tính C2 thuộc A1 Π (σ (R)) => σ (Π (R)) A1 C2 C2 A1 Π (Π (R)) => Π (R) A1 A2 A1 A1 ⊆ A2 12 Tính chất phép toán ĐSQH (2) 3.  Tính giao hoán kết hợp phép toán *, ∩, ∪, -, x R X S => S X R R * S => S * R R ∩ S => S ∩ R R ∪ S => S ∪ R (R X S) X T => R X (S X T) (R ∩ S) ∩ T => R ∩ (S ∩ T) (R ∪ S) ∪ T => R ∪ (S ∪ T) (R * S) * T => R * C1 C2 C1 (S * T) C2 Attr(C2) ⊆ Attr(S) U Attr(T) 13 Tính chất phép toán ĐSQH (3) 4.  Tính phân phối σ Π phép toán *, ∩, ∪, -, X Nếu C = (CR ^ CS) Attr(CR) ⊆ R Attr(CS) ⊆ S : σ (R *JC S) => σ (R) * JC σ (S) C CR CS σ (R X S) => σ (R) X σ (S) C CR CS 14 Biến đổi biểu thức ĐSQH T1 R: F1 ∧ F2 ∧ Fn (( (R:F1) : F2 ): ):Fn _ T2 (R[Y]) [Z] R[Z] nᾊ u Z⊆Y _ T3 (R[Y]) :F (X) (R :F(X)) [Y] nᾊ uX⊆Y (R: F(X)) [Y] (R[X ∪ Y]) : F(X) ) [Y] nᾊ uX⊄Y _ T4 (R(X) x S(Y)) : F(Z) (R(X):F) x S(Y) nᾊ uZ⊆X (R(X) x S(Y)) : F(Z1)∧ F(Z2) (R(X):F(Z1)) x (S(Y): F(Z2)) nᾊ u Z1 ⊆ X Z2 ⊆ Y _ T5 (R ∪ S): F (R:F) ∪ (S:F) _ T6 (R - S): F (R:F) - S _ T7 (R(X) x S(Y))[Z] R[X ∩ Z] x S[Y ∩ Z] _ T8 (R ∪ S) [Z] (R[Z]) ∪ (S[Z]) _ 15 Trình tự áp dụng •  Khai triển phép lựa chọn dựa nhiều điều kiện: T1 •  Hoán vị phép chọn với tích đề-các, hợp, trừ: T3, T4, T5, T6 •  Hoán vị phép chiếu với tích đề-các, hợp : T2, T7, T8 •  Nhóm điều kiện chọn T1 áp dụng T2 để loại phép chiếu dư thừa 16 Bài tập 17 Lựa chọn cách truy nhập liệu •  Giả thiết TYPE –  TRAIN : có số NT –  WAGON : có số NW NW •  Thực phép kết nối –  Lựa chọn giải thuật –  Lựa chọn cách WAGON (NW, TYPE ) NT = 4002 TRAIN (NT, NW) 18 Relation R Nested-loop-join (NLJ) Relation S •  Nguyên tắc –  Duyệt lần quan hệ R & lặp quan hệ S Matching Tuple R •  Các mở rộng thuật toán –  Tuple-based NLJ, block-based NLJ, index-based NLJ Tuple R SOURCE R Tuple S SOURCE S 19 Thực nào? TYPE NW WAGON (NW, TYPE ) NT = 4002 TRAIN (NT, NW) 20 Thông tin quan hệ •  Kích thước quan hệ ghi Relation WAGON TRAIN TRAFFIC Cardinality 200000 60000 80000 • Thông tin thuộc tính Attribute Cardinality NW TYPE COND CAPACITY NT DATE 200000 200 400 2000 00 • Thông tin số Relation WAGON WAGON WAGON WAGON TRAIN TRAFFIC TRAFFIC Attributes NW TYPE COND CAPACITY NT NT DATE Relation Cardinality WAGON TRAIN TRAFFIC 200000 60000 80000 Unique Yes No No No No No no Record size 60 30 20 Size 20 15 15 10 -max -45 Type Principal Secondary Secondary Secondary Principal Principal Principal Record size (num of rec./page) 60(100) 30 (200) 20 (300) Num of pages 45 25 30 25 18 20 40 Num of pages (NP’) 1500(375) 225(60) 200(60) 21 Mô hình giá •  Chí phí thực câu hỏi phụ thuộc: –  đọc/ghi nhớ (số trang nhớ) – Kích thước liệu phải xử lý • Chi phí truy nhập liệu – Đọc ghi liệu – xử lý – Truyền thông trạm làm việc CTA = σ * NBPAGES + τ * NBNUPLETS (+ µ * NBMESSAGES) • Trọng số » σ = trọng số đọc/ghi liệu (ví dụ = 1) 22 Tối ưu hoá dựa mô hình giá •  Mục đích: Chọn phương án thực câu hỏi với chi phí thấp •  Nhận xét: –  Chi phí cho liệt kê phương án trả lời câu hỏi –  Chi phí cho lượng hoá phương án theo mô hình giá Ø Có thể sử dụng « mẹo » (heuristics) để giảm không gian tìm kiếm câu hỏi 23 Kết luận •  Tối ưu hoá nhằm tìm phương án tốt để thực câu hỏi –  Cần lưu ý: chí phí thực tối ưu hoá chi phí thực câu hỏi •  Các kỹ thuật tối ưu –  Logic : kiểm tra điều kiện ràng buộc thuộc tính/quan hệ điều kiện lựa chọn câu hỏi, biến đổi tương đương biểu thức ĐSQH –  Vật lý : tổ chức vật lý liệu đĩa, mô hình giá Ø Không thiết phải áp dụng tất kỹ thuật 24

Ngày đăng: 24/05/2016, 15:19

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

Tài liệu liên quan