Các hoạch định thực thi vấn tin thường được trìu tượng hóa qua cây toán tử), trên đó định nghĩa thứ tự thực hiện các phép toán. Chúng ta bổ sung thêm các thông tin như thuật toán tốt nhất được chọn cho mỗi phép toán. Đối với một câu vấn tin đã cho, không gian tìm kiếm có thể được định nghĩa như một tập các cây toán tử tương đương, có được bằng cách áp dụng các qui tắc biến đổi . Để nêu bật các đặc trưng của thể tối ưu hóa vấn tin , chúng ta thường tập trung các cây nối (join tree), là cây toán tử với các phép toán nối hoặc tích Descartes. Lý do là các hoán vị thứ tự nối các tác dụng quan trọng nhất đến hiệu năng của các vấn tin quan hệ.
CÂU VẤN TIN
QEP TƯƠNG ĐƯƠNG
63 CÂU VẤN TIN
TẠO RA KHÔNG GIAN TÌM KIẾM
Thí dụ 3.14:
Xét câu vấn tin sau: SELECT ENAME
FROM EMP, ASG, PROJ WHERE EMP, ENO=ASG.ENO AND ASG, PNO=PROJ . PNO
Hình sau minh họa ba cây nối tương đương cho vấn tin đó, thu được bằng cách sử dụng tính chất kết hợp của các toán tử hai ngôi. Mỗi cây này có thể được gán một chi phí dựa trên chi phí của mỗi toán tử. Cây nối ( c ) bắt đầu với một tích Des-cartes có thể có chi phí cao hơn rất nhiều so với cây còn lại.
TẠO RA KHÔNG
GIAN TÌM KIẾM QUY TẮC BIẾN ĐỔI
CHIẾN LƯỢC
64 PNO ENO ENO PROJ PNO EMP EMP ASG ASG PROJ
(a) (b)
ENO.PNO X ASG PROJ EMP
(c)
Với một câu vấn tin phức tạp (có gồm nhiều quan hệ và nhiều toán tử), số caaytoans tử tương đương có thể rất nhiều. Thí dụ số cây nối có thể thu được từ việc áp dụng tính giao hoán và kết hợp là O(N!) cho N quan hệ. Việc đánh giá một không gian tìm kiếm lớn có thể mất quá nhiều thời gian tối ưu hóa, đôi khi còn tốn hơn cả thời gian thực thi thực sự. Vì thể, thể tối ưu hóa thường hạn chế kích thước cần xem xét của không gian tìm kiếm . Hạn chế thứ nhất là dùng các heuristic. Một heuristic thông dụng nhất là thực hiện phép chọn và chiếu khi truy xuất đến quan hệ cơ sở. Một heuristic thông dụng khác là tránh lấy các tích Descartes không được chính câu vấn tin yêu cầu. Thí dụ trong hình trên cây toán tử (c ) không phải là phần được thể tối ưu hóa xem xét trong không gian tìm kiếm. R1 R2 R3 R4 R1 R2 R3 R4
65 a) Cây nối tuyến tính b) Cây nối xum xuê
Một hạn chế quan trọng khác ứng với hình dạng của cây nối. Hai loại cây nối thường được phân biệt Cây nối tuyến tính và cây nối xum xuê (xem Hình 9.3). Một cây tuyến tính (linear tree) là cây với mỗi nút toán tử có ít nhất một toán hạng là một quan hệ cơ sở. Một cây xum xuê (bushy tree) thì tổng quát hơn và có thể có các toán tử không có quan hệ cơ sở làm toán hạng (nghĩa là cả hai toán hạng đều là các quan hệ trung gian). Nếu chỉ xét các cây tuyến tính, kích thước của không gian tìm kiếm được rút gọn lại thành O(2N). Tuy nhiên trong môi trường phân bố, cây xum xuê rất có lợi cho việc thực hiện song song.