Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 24 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
24
Dung lượng
374,99 KB
Nội dung
Tối ưu hóa câu truy vấn Q trình xử lý câu truy vấn Tối ưu hóa logic Tối ưu hóa vật lý Tối ưu hóa dựa vào ước lượng chi phí Mục đích Tối ưu hóa câu truy vấn tiến trình lựa chọn kế họach thực thi câu truy vấn cách hiệu ◦ Tốn tài nguyên ◦ Hồi ñáp nhanh Các bước ước xử lý câu truy vấn Query in high-level language (SQL) Scanning, parsing and validating Intermediate form of query (Relational algebra expression) Query optimizer execution plan Query code generator Generated code Runtime database processor Result Các bước ước xử lý vấn tin Bước ◦ Scan Xác định từ khóa ngơn ngữ SQL, tên thuộc tính, tên quan hệ ◦ Parse Kiểm tra cú pháp câu truy vấn ◦ Validate Kiểm tra tên thuộc tính, tên quan hệ có lược đồ ñã khai báo hay không Không nhập nhằng dùng thuộc tính Kiểu liệu dùng để so sánh ñều hợp lệ ◦ Thể lại câu truy vấn: ñại số quan hệ, query tree, query graph Tìm phim mà diễn viên sinh vào năm 1960 Cây truy vấn SELECT title FROM StarsIn WHERE starName IN ( SELECT name FROM MovieStar WHERE birthdate LIKE ‘%1960’); SELECT FROM title StarsIn SELECT FROM WHRRR IN name MovieStar ( ) starName WHERE LIKE birthDate ‘%1960’ Chuyể Chuy ển Q thành ðSQH Câu truy vấn ñược phân rã thành query block (QB) ◦ QB ñơn vị ñể chuyển sang biểu thức ðSQH tối ưu hóa ◦ Một QB chứa biểu thức ñơn SELECFROM-WHERE-GROUP BY – HAVING ◦ Các câu truy vấn lồng câu truy vấn QB ñộc lập ◦ Các tốn tử gom nhóm (max, min, sum, count) thể dùng ðSQH mở rộng Ví dụ SELECT HONV, TENNV FROM NHANVIEN WHERE LUONG > (SELECT MAX(LUONG) c FROM NHANVIEN WHERE PHG = ) Bt ðSQH Bt ðSQH Bộ tối ưu hóa truy vấn (Query Optimizer - QO) chọn lựa kế hoạch thực thi cho block Bước ◦ Biến ñổi biểu thức ðSQH ñể chọn biểu thức tối ưu ◦ Tiến trình gọi tối ưu hóa câu truy vấn Bước ◦ Bộ phát sinh mã cho mã ñể thực thi câu truy vấn thRo chiến lược vừa chọn Bước ◦ Thi hành mã ñã phát sinh Kế ho hoạ ạch th thự ực thi truy vấn Kế hoạch thực thi mức logic (Logical plan) thể mức cao dùng ñại số, qua cấu trúc ngôn ngữ truy vấn Kế hoạch thực thi mức vật lý (Physical plan) thể cấp thấp liên quan ñến việc thực hiện, qua phương pháp truy xuất Có nhiều kế hoạch thực thi truy vấn mức vật lý ứng với kế hoạch thực thi mức logic cho trước LP PP Πtitle σstarName=name Hash join × StarsIn Πname σbirthdate LIKE ‘%1960’ SEQ scan StarsIn index scan MovieStar MovieStar 10 Query tree ◦ Là cấu trúc dạng tương ứng với biểu thức đại số quan hệ Πtitle σstarName=name × StarsIn Πname σbirthdate LIKE ‘%1960’ MovieStar 11 Các luậ luật biế biến ñổi tương ương ñương ương σc1AND c2 AND…AND cn (R) ≡ σc1(σc2(… σcn (R) …)) σc1(σc2 (R)) ≡ σc2(σc1(R)) giao hoán σ ΠL1(ΠL2(…(ΠLn(R))…)) ≡ ΠL1(R) ΠL1,L2, …, Ln(σc(R)) ≡ σc(ΠL1,L2, …, Ln (R)) R1⋈c R2 ≡ R2⋈c R1 giao hoán ⋈ x R1xR2 ≡ R2xR1 σc(R1⋈ R2) ≡ (σ σc(R1)) ⋈ R2 σc(R1⋈ R2) ≡ (σc1(R1)) ⋈ (σc2(R2)) c viết c1 AND c2, c1 gồm thuộc tính R1, c2 gồm thuộc tính R2 ΠL(R1⋈c R2) ≡ (ΠA1, A2 …,An(R1)) ⋈c (Π B1, B2 …,Bn (R2)) ñổi chỗ Π ⋈ (hoặc x) L = {A1, A2, … An, B1, B2, …, Bn} Ai ∈ R1, Bi ∈ R2 12 Các luậ luật biế biến ñổi tương ương ñương ương ∪ ∩ có tính giao hốn, phép – khơng Tính kết hợp θ: ⋈, x, ∪ ∩: (R1 θ R2 )θ R3 ≡ R1 θ (R2 θ R3) σc (R1 θ R2) ≡(σc (R1)) θ (σc(R2)) ñổi chỗ σ θ gồm ∪, ∩ - 10 ΠL (R1 ∪ R2) ≡ ΠL (R1) ∪ ΠL (R2) 12 σ c(R1xR2) ≡ R1 ⋈c R2 chuyển σ, x sang ⋈ 13 Luật DeMorgan NOT (C1 AND C2) ≡ (NOT C1) OR (NOT C2) NOT (C1 OR C2) ≡ NOT (C1) AND NOT(C2) 14 15 (σP (R1 - R2) ≡ σP (R1) – R2 ΠA1,…, An(σC(R)) ⇔ ΠA1,…, An(σC(ΠA1,…, An,Ap (R))) σc1(R1⋈c2 R2) ≡ R1⋈c1∧ c2 R2 13 Giả Giải thu thuậ ật Heuristics Dùng quy tắc 1, tách phép chọn để tự di chuyển phép chọn xuống nhánh Dùng quy tắc 2, 4, 6, 10 liên quan đến tính giao hóan phép chọn phép tốn khác để di chuyển phép chọn xuống nhánh Dùng quy tắc liên quan đến tính kết hợp phép ngơi, để xếp lại nút ñể phép chọn ñược ưu tiên thực trước Dùng 12, kết hợp tích đề-các phép chọn thành phép kết Dùng 3, 4, 7, 11 ñể tách ñẩy phép chiếu xuống nhánh Nhận biết nhánh biểu diễn cho nhóm thao tác thi hành chiến lược thực đơn 14 Sắp xếp (external sorting) Sắp xếp thuật tốn dùng xử lý truy vấn.Ví dụ ORDER BY Sắp xếp bước quan trọng dùng cho phép join, union, bước loại bỏ dòng trùng thực phép chiếu Tránh thực xếp liệu có mục cho phép truy cập theo thứ tự Sắp xếp ngồi đề cập đến thuật toán xếp tập tin sở liệu lớn khơng thể chứa đủ nhớ Sort-Merge: ◦ Thuật tốn xếp gồm bước: sorting merging ◦ Sắp xếp subfile (runs) tập tin chính, sau trộn sorted runs, tạo subfile lớn hơn, xếp lại trộn chúng ◦ Kích thước run số lượng run khởi ñầu nR tùy vào số lượng file blocks b không gian buffer trống nB Nếu nB = b = 1024 blocks nR = b/nB , tức ban đầu có 205 run Sau xếp, 205 sorted run ñược lưu file tạm ñĩa 15 Phép ch chọ ọn Có nhiều chọn lựa thực phép chọn đơn ◦ S1: Tìm tuyến tính: đọc mẫu tin kiểm tra giá trị thuộc tính có thỏa điều kiện chọn hay khơng ◦ S2: tìm nhị phân: điều kiện chọn phép so sánh thuộc tính khóa dùng để xếp file, tìm nhị phân áp dụng ◦ S3: Dùng primary index hash key ñể ñọc mẫu tin phép chọn so sánh thuộc tính khóa khai báo primary index khóa băm ◦ S4: Dùng primary index để tìm nhiều mẫu tin: điều kiện so sánh >, >=,