Cơ sở dữ liệu nâng cao Tối ưu hoá dựa trên chi phí. NGUYỄN NGỌC HÓA. Bộ môn Hệ thống thông tin Khoa CNTT,Trường Đại học Công nghệ

103 15 0
Cơ sở dữ liệu nâng cao Tối ưu hoá dựa trên chi phí. NGUYỄN NGỌC HÓA. Bộ môn Hệ thống thông tin Khoa CNTT,Trường Đại học Công nghệ

Đ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

Cơ sở liệu nâng cao Tối ưu hoá dựa chi phí NGUYỄN Ngọc Hố 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 Hoa.Nguyen@vnu.edu.vn Nội dung  Mơ hình chi phí – Nguyên lý tối ưu – Giải thuật Selinger  Triển khai phép toán truy vấn – Materialization – Pipelining  Cài đặt phép toán – – – – Scan-based Sort-based Using existing indexes Hash-based  Ước lượng chi phí Cơ sở liệu nâng cao @ BM HTTT SQL query parse parse tree Query rewriting statistics Best logical query plan Physical plan generation Best physical query plan execute Liệt kê physical plans Ước lượng chi phí plan Chọn plan có chi phí thấp result Cơ sở liệu nâng cao @ BM HTTT Physical Plan Generation Logical Query Plan P1 P2 … Physical plans Pn Costs C1 C2 … Cn Pick minimum cost one Cơ sở liệu nâng cao @ BM HTTT Mơ hình chi phí đơn giản Cost (R S) = T(R) + T(S) Các phép toán CPU chi phi = Cơ sở liệu nâng cao @ BM HTTT Ví dụ X T(X) + T(T) T T(R) + T(S) R S Total Cost: T(R) + T(S) + T(T) + T(X) Cơ sở liệu nâng cao @ BM HTTT Nguyên lý tối ưu Optimal for “whole” made up from optimal for “parts” Cơ sở liệu nâng cao @ BM HTTT Nguyên lý tối ưu… Query: R1 R2 R3 R4 R5 Optimal Plan: R5 R1 R4 R3 R2 Cơ sở liệu nâng cao @ BM HTTT Nguyên lý tối ưu… Query: R1 R2 R3 R4 R5 Optimal Plan: R5 R1 R4 R3 R2 Optimal plan for joining R3, R2, R4, R1 Cơ sở liệu nâng cao @ BM HTTT Nguyên lý tối ưu… Query: R1 R2 R3 R4 R5 Optimal Plan: R5 R1 R4 R3 R2 Optimal plan for joining R3, R2, R4 10 Cơ sở liệu nâng cao @ BM HTTT Với phép toán khác Nhân chéo Cartesian : T(R  S) = T(R) * T(S) Bag Union: tổng thành phần Set union: tổng quan hệ có số lớn với nửa số quan hệ lại Intersection: nửa số quan hệ có số lượng bé hớn Difference: T(R-S) = T(R) - 1/2*T(S) Duplicate elimination d(a1, ,an) R: T(d(R))= V(R,[a1 an]) ~= min[V(R,a1)* *V(R,an), 1/2*T(R)] 89 Cơ sở liệu nâng cao @ BM HTTT Chọn kế hoạch Initial logical query plan 90 ứng viên sau coi best logical query plan Plan chọn? Cơ sở liệu nâng cao @ BM HTTT Ước lượng số Plan a T( a=10(R) ) = 5000/50 = 100 T(d(a=10(R)) ) = min{1*100, 100/2} = 50 T(d(S) ) = min{200*100, 2000/2} = 1000 91 Cơ sở liệu nâng cao @ BM HTTT Ước lượng số bộ… Plan b T(a=10(R)) = 5000/50 = 100 T(a=10(R)  S ) = 100*2000/200 = 1000 92 Cơ sở liệu nâng cao @ BM HTTT Ước lượng số bộ… Từ đó, số lượng trung gian Ta = 1150 Tb = 1100 Số lượng ước lượng kế hoạch là: Tpa = 1400 Tpa = 1600 Vậy - plan có chi phí ước lượng tốt plan b (xét số trung gian) - 93 Plan a có chi phí tốt xét tổng thể kế hoạch Cơ sở liệu nâng cao @ BM HTTT Thứ tự nối  Với tối ưu hố dựa theo ước lượng chi phí, việc xác định thứ tự phép nối tự nhiên quan trọng • Xét R(a,b), T(R)=1000, V(R,b)=20 S(b,c), T(S)=2000, V(S,b)=50, V(S,c)=100 U(c,d), T(U)=5000, V(U,c)=500 với phép nối R  S  U Chú ý: Giá trị ước lượng số kết cuối phải độc lập so • TH1: với thứ tự nối T(R  S) = 1000*2000 / 50 = 40,000 T((R  S)  U) = 40000 * 5000 / 500 = 400,000 Kết trung gian có số • TH2: lượng khác T(S  U) = 20,000 T(R  (S  U)) = 1000*20000 / 50 = 400,000 94 Cơ sở liệu nâng cao @ BM HTTT Nối hai quan hệ  Trong số giải thuật nối, thứ tự phép nối hai quan hệ ảnh hưởng đến chi phí thi hành phép nối – Giải thuật one-pass join ln để quan hệ có kích thước bé sang trái đọc vào nhớ trước • Quan hệ trái (bé hơn) gọi quan hệ sở (build relation) • Quan hệ phải, gọi quan hệ dò (probe relation), đọc lần block nối với build relation nhớ – Nested-Loop join xem quan hệ trái xét vịng lặp ngồi – Index-join xem quan hệ phải đánh mục 95 Cơ sở liệu nâng cao @ BM HTTT Cây nối quan hệ  Với phép nối nhiều quan hệ, có nhiều cách nối khác  Các phép nối minh hoạ theo cấu trúc left-deep tree All right children are leaves 96 bushy tree righ-deep tree All left children are leaves Cơ sở liệu nâng cao @ BM HTTT Left-Deep Join Trees Cấu trúc sử dụng với phép nối n quan hệ Số lượng LDT lớn, khơng lớn số có – Số LDT = n!, số có T(n) =i=1…n-1 T(i)T(n - i) LDT cho phép cài đặt hiệu giải thuật nối thông dụng - nested-loop joins one-pass joins – One-pass algorithm cần MM cho quan hệ trung gian thời điểm – Quan hệ trái (build relation) nằm MM – Để tính RS, ta cần giữ R kết tính MM  cần buffer = B(R) + B(RS) 97 Cơ sở liệu nâng cao @ BM HTTT Ước lượng nối nhiều quan hệ  Giả sử cần nối n quan hệ Rl  R2  …  Rn Ta cần xây dựng bảng ước lượng chi phí n! LDT để chọn LDT tốt Ví dụ: R(a,b) S(b,c) Singleton Sets V(R,a) = 100 V(R,b) = 200 V(S,b) = 100 V(S,c) = 500 T(c,d) V(T,c) = 20 V(T,d) = 50 U(d,a) V(U,a) = 50 V(U,d) = 1000 {R} {S} {T} {U} Size 1000 1000 1000 1000 Cost 0 0 Best Plan R S T U Pairs of relations {R,S} {R,T} {R,U} {S,T} {S,U} {T,U} Size 5000 1M 10,000 2000 1M 1000 Cost 0 0 0 R  T R  U S  T S  U T  U Best Plan R  S Chú ý: size xem số quan hệ; cost số 98bộ trung gian sinh Cơ sở liệu nâng cao @ BM HTTT Nối nhiều quan hệ… Pairs of relations {R,S} {R,T} {R,U} {S,T} {S,U} {T,U} Size 5000 1M 10,000 2000 1M 1000 Cost 0 0 0 R  T R  U S  T S  U T  U Best Plan R  S Triples of Relations 99 {R,S,T} {R,S,U} {R,T,U} {S,T,U} Size 10,000 50,000 10,000 2000 Cost 2000 5000 1000 1000 Best Plan (S  T)  R (R  S)  U (T  U)  R (T  U)  S Cơ sở liệu nâng cao @ BM HTTT Nối nhiều quan hệ… 100 Grouping Cost ((S  T)  R)  U 12,000 ((R  S)  U)  T 55,000 ((T  U)  R)  S 11,000 ((T  U)  S)  R 3,000 (T  U)  (R  S) 6,000 (R  T)  (S  U) 2,000,000 (S  T)  (R  U) 12,000 Cơ sở liệu nâng cao @ BM HTTT Tổng kết  Cấn ý hai phương pháp triển khai phép toán truy vấn: – Materialization – Pipelining  Với phép toán truy vấn, sử dụng nhiều giải thuật để thi hành – – – – Scan-based Sort-based Using existing indexes Hash-based  Mỗi kế hoạch thi hành truy vấn người dùng cần ước lượng chi phí, tìm plan có chi phí tốt 101 Cơ sở liệu nâng cao @ BM HTTT Bài tập 102 Cơ sở liệu nâng cao @ BM HTTT Which query plan uses the fewest disk I/Os? 103 Cơ sở liệu nâng cao @ BM HTTT ... sub-list 47 Cơ sở liệu nâng cao @ BM HTTT Ví dụ… 48 Cơ sở liệu nâng cao @ BM HTTT Ví dụ… 49 Cơ sở liệu nâng cao @ BM HTTT Ví dụ… 50 Cơ sở liệu nâng cao @ BM HTTT Analysis of d(R)  Chi phí I/O... R3 R2 Cơ sở liệu nâng cao @ BM HTTT Nguyên lý tối ưu? ?? Query: R1 R2 R3 R4 R5 Optimal Plan: R5 R1 R4 R3 R2 Optimal plan for joining R3, R2, R4, R1 Cơ sở liệu nâng cao @ BM HTTT Nguyên lý tối ưu? ??... B(R)) 38 Cơ sở liệu nâng cao @ BM HTTT Phân loại toán tử Đơn nguyên Nhị nguyên 39 Bộ liệu Toàn quan hệ ,  d, g,  union, join, difference Cơ sở liệu nâng cao @ BM HTTT Với phép toán liệu- one

Ngày đăng: 25/07/2021, 02:39

Từ khóa liên quan

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

Tài liệu liên quan