Đặt vấn đề: Cho 1 câu truy vấn, các cây toán tử thực. thi nào sẽ được xem xét[r]
(1)Xử lý truy vấn hiệu hệ CSDL
Vũ Tuyết Trinh
trinhvt-fit@mail.hut.edu.vn
Bộ môn Hệ thống thông tin, Viện CNTT&TT Đại học Bách Khoa Hà Nội
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)
(2)Cây toán tử
WAGON (NW, TYPE, COND, STATION, CAPACITY, WEIGHT)
TRAIN (NT, NW)
Cây toán tử logic
Thứ tự phép toán
Cây toán tử vật lý
Các thuật toán thực thi phép toán
WAGON (NW, TYPE )
TRAIN (NT, NW)
NW
NT = 4002 TYPE
Các phép toán vật lý (thuật toán)
Query Blocks
SELECT-FROM- WHERE-GROUPBY-ORDERBY
VIEW coi
block riêng rẽ
Dạng thực thi
(right-deep, bushy, …)
Thứ tự kết nối
Thuật toán
Sort
Aggregates
Select
Project
Join
Nested Loop
Sort-Merge
(3)Truy nhập bảng
Truy nhập (Sequential scan): đọc theo
khối
Truy nhập theo địa (index scan): truy nhập
vào ghi dựa mục
Chi phí truy nhập ?
S Phép toán nhiều pha:
Nested-Loops Join
Nguyên tắc
Đọc ghi quan
hệ R (external relation) & lặp quan hệ S (internal relation)
Đặc điểm
one-and-haft pass,
non-blocking
Chi phí ?
SOURCE S SOURCE
R Tuple R
Tuple R
Tuple S
Matching
(4)Sort Merge Join
Nguyên tắc
Sắp xếp liệu đầu vào
trộn liệu
Đặc điểm
two-pass, blocking algorithm
Chi phí?
SOURCE S SOURCE
R
Merge
Sort Sort
Hash Join (HJ)
Nguyên tắc
Tạo bảng băm R
Đọc S đối sánh với liệu
trên bảng băm
Đặc điểm
two-pass, blocking algorithm
Chi phí ?
SOURCE S SOURCE
R
Tuple R Tuple S Hash Table R
…
1 n
Matching
hash(Tuple S) hash(Tuple R)
build
(5)Mơ hình giá
Chí phí thực câu hỏi phụ thuộc: đọc/ghi nhớ ngồi (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 = s * NBPAGES + t * NBNUPLETS (+ m * NBMESSAGES)
Trọng số
s = trọng số đọc/ghi liệu (ví dụ = 1) t = trọng số xử lý CPU (ví dụ = 1/3) m = trọng số truyền liệu
Thông tin quan hệ
Kích thước quan hệ ghi
Thơng tin thuộc tính
Thông tin số
Relation Cardinality Record size
WAGON 200000 60
TRAIN 60000 30
TRAFFIC 80000 20
Attribute Cardinality Size min-max
NW 200000 20
TYPE 200
COND 15
CAPACITY 400 15 5-45
NT 2000 10
DATE 800
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)
(6)Tối ưu
Đặt vấn đề: Cho câu truy vấn, toán tử thực
thi xem xét ?
Không gian tìm kiếm
Chiến lược tìm kiếm
Ước lượng giá cho kế hoạch thực thi
Lý tưởng:tìm kế hoạch thực thi tốt
Thực tế:Tránh kế hoạch thực thi tồi
Bộ tối ưu
Rewriter
Planner Method-Structure
Space Algebraic
Space
(7)Query: R1 R2 R3 R4 R5
R3 R2 R4
R1 R5
Optimal Plan:
R3 R2 R4
R1 R5
Optimal Plan:
Optimal plan for joining R3, R2, R4
Query: R1 R2 R3 R4 R5