Chương 4 Xử lý truy vấn phân tán thuộc bài giảng Cơ sở dữ liệu phân tán. Nội dung chương này trình bày: giới thiệu về xử lý truy vấn, xử lý truy vấn trong môi trường tập trung, xử lý truy vấn trong môi trường phân tán, tối ưu hoá truy vấn trong CSDL phân tán.
CHƯƠNG 4: XỬ LÝ TRUY VẤN TRONG CSDL PHÂN TÁN NGUYỄN MẬU HÂN, PhD HUE COLLEGE OF SCIENCES CHƯƠNG 4: XỬ LÝ TRUY VẤN TRONG CSDL PHÂN TÁN NỘI DUNG 4.1 Giới thiệu xử lý truy vấn 4.2 Xử lý truy vấn môi trường tập trung 4.3 Xử lý truy vấn môi trường phân tán 4.4 Tối ưu hố truy vấn CSDL phân tán MỤC ĐÍCH •Giới thiệu tranh tổng quát tối ưu hóa truy vấn mơi trường tập trung phân tán •Trình bày quy trình xử lý truy vấn hệ thống phân tán 4.1 GIỚI THIỆU VỀ XỬ LÝ TRUY VẤN Mục đích xử lý truy vấn: • Giảm thiểu thời gian xử lý • Giảm vùng nhớ trung gian • Giảm chi phí truyền thơng trạm • Sử dụng tài ngun Chức xử lý truy vấn: • Biến đổi truy vấn phức tạp thành truy vấn tương đương đơn giản • Phép biến đổi phải đạt tính đắn hiệu • Mỗi cách biến đổi dẫn đến việc sử dụng tài nguyên máy tính khác nhau, nên vấn đề đặt lựa chọn phương án dùng tài nguyên 4.1 GIỚI THIỆU VỀ XỬ LÝ TRUY VẤN Các phương pháp xử lý truy vấn • Phương pháp biến đổi đại số: Đơn giản hóa câu truy vấn nhờ phép biến đổi đại số tương đương nhằm giảm thiểu thời gian thực phép tốn Phương pháp khơng quan tâm đến kích thước cấu trúc liệu • Phương pháp ước lượng chi phí: Xác định kích thước liệu, thời gian thực phép toán câu truy vấn Phương pháp quan tâm đến kích thước liệu phải tính tốn chi phí thời gian thực phép toán 4.2 XỬ LÝ TRUY VẤN TRONG MÔI TRƯỜNG TẬP TRUNG 4.2.1 So sánh xử lý truy vấn tập trung phân tán • Tập trung: Chọn truy vấn đại số quan hệ tốt số tất truy vấn đại số tương đương Các chiến lược xử lý truy vấn biểu diễn mở rộng đại số quan hệ • Phân tán Kế thừa chiến lược xử lý truy vấn môi trường tập trung Cịn phải quan tâm thêm Các phép tốn truyền liệu trạm Chọn trạm tốt để xử lý liệu Cách truyền liệu TỐI ƯU HỐ TRUY VẤN TRONG MƠI TRƯỜNG TẬP TRUNG Câu truy vấn SQL Sơ đồ chung Kiểm tra ngữ pháp Truy vấn ngữ pháp Tối ưu hoá đại số quan hệ Truy vấn đại số quan hệ tối ưu Kiểm tra hợp lệ Chọn chiến lược tối ưu Truy vấn SQL hợp lệ Kế hoạch thực Dịch truy vấn Truy vấn đại số quan hệ Tạo sinh mã Mã truy vấn Tối ưu hố truy vấn Trong mơi trường phõn tỏn Câu truy vấn phân tán Phân rã truy vấn Lược đồ tổng thể Truy vấn đại số quan hệ phân tán Trạm điều khiển Định vị liệu Lược đồ phân mảnh Truy vấn mảnh Tối ưu hoá toàn cục Các thống kê mảnh Truy vấn mảnh tối ưu với phép tốn truyền thơng Các trạm địa phương Tối ưu hoá cục Lược đồ địa phương Các truy vấn cục tối ưu Sơ đồ phân lớp chung cho xử lý truy vấn phân tán 4.2 XỬ LÝ TRUY VẤN TRONG MÔI TRƯỜNG TẬP TRUNG 4.4.2 Chiến lược tối ưu CSDL tập trung Tại phải nghiên cứu xử lý truy vấn tập trung? Để hiểu kỹ thuật tối ưu phân tán ba lí do: • Thứ nhất, câu truy vấn phân tán phải dịch thành câu truy vấn cục bộ, xử lí theo phương pháp tập trung • Thứ hai, kỹ thuật tối ưu hoá phân tán thường mở rộng kỹ thuật tập trung • Thứ ba, tối ưu hoá tập trung thường đơn giản 4.2 XỬ LÝ TRUY VẤN TRONG MƠI TRƯỜNG TẬP TRUNG Thuật tốn INGRES Ý tưởng thuật toán: Thuật toán tổ hợp hai giai đoạn phân rã tối ưu hố • Đầu tiên phân rã câu truy vấn dạng phép toán quan hệ thành phần nhỏ • Câu truy vấn phân rã thành chuỗi truy vấn có quan hệ chung • Sau câu truy vấn đơn quan hệ xử lí “thể xử lý truy vấn biến” biến (one variable query processor-OVQP) 4.2 XỬ LÝ TRUY VẤN TRONG MƠI TRƯỜNG TẬP TRUNG Thuật tốn INGRES (cont.) •Trước tiên OVQP thực phép tốn đơn ngơi cố gắng giảm thiểu kích thước kết trung gian phép tách (detachment) Phép (substitution) •Kí hiệu qi-1qi để câu truy vấn q phân rã thành hai câu truy vấn qi-1và qi, qi-1 thực trước kết qi sử dụng •Phép tách: OVQP sử dụng để tách câu truy vấn q thành truy vấn q’q” dựa quan hệ chung kết q’ 10 4.4 Tối ưu hoá truy vấn CSDL phân tán Chú ý: ý Trong công thức: Total_cost= CCPU* #instr + CI/O*#I/OS + CMSG *#msgs + + CTR *#bytes •Hai thành phần chi phí đầu (CCPU,CI/O) chi phí địa phương •Hai thành phần chi phí sau (CMSG, CTR) chi phí truyền thơng •Chi phí truyền thông để chuyển #byte liệu từ trạm đến trạm khác giả thiết hàm tuyến tính theo số #bytes truyền đi, xác định công thức CC(#byte)= CMSG + CTR * bytes 62 4.4 Tối ưu hoá truy vấn CSDL phân tán Công thức chung cho xác định thời gian trả lời Response_time = CCPU * seq_#instr + CI/O * seq_#I/OS + CMSG * seq_#msgs + CTR* seq_#bytes Trong ®ã: seq_#x (x cã thĨ lµ sè lƯnh cđa CPU, I/O, sè thông báo, số byte) số lớn x thực truy vấn cách Trong đó: Response_time: thời gian trả lời truy vấn CCPU: chi phí lệnh CPU CI/O: chi phí xuất/nhập đĩa CMSG: chi phí việc khởi đầu nhận thơng báo CTR: chi phí truyền đơn vị liệu từ trạm đến trạm khác #instr: tổng tất lệnh CPU trạm #I/OS: số lần xuất/nhập đĩa 63 #msg : số thông báo 4.4 Tối ưu hoá truy vấn CSDL phân tán Ví dụ: Minh hoạ khác tổng chi phí thời gian trả lời, máy tính trả lời truy vấn trạm với liệu từ trạm 2, có chi phí truyền thơng xét Trạm x Trạm Trạm y Hình 4.12: Ví dụ biến đổi truy vấn Giả sử, CMSG CTR biểu thị theo đơn vị thời gian Tổng chi phí truyền x đơn vị từ trạm đến trạm y đơn vị từ trạm đến trạm là: Total_cost = CMSG + CTR*x + CMSG+ CTR*y = 2CMSG+ CTR* (x+y) Vì việc truyền liệu thực song song nên thời gian trả lời truy vấn là: Response_time = max{CMSG + CTR* x, CMSG + CTR* y} 64 4.4 Tối ưu hoá truy vấn CSDL phân tán 4.4.2 Các thống kê liệu •Yếu tố ảnh hưởng đến hiệu suất chiến lược thực thi kích thước quan hệ trung gian sinh trình thực •Khi phép tốn đặt trạm khác, quan hệ trung gian phải truyền mạng •Do để tối thiểu hố khối lượng liệu truyền đi, điều quan tâm đánh giá kích thước kết trung gian phép tốn đại số quan hệ •Đánh giá dựa thông tin thống kê quan hệ sở cơng thức ước tính lực lượng kết phép toán quan hệ 65 4.4 Tối ưu hố truy vấn CSDL phân tán Mục đích thống kê liệu: •Xác định kích thước quan hệ trung gian sinh trình thực câu truy vấn •Xác định chi phí truyền thơng cho đại lượng trung gian Một số ký hiệu Cho quan hệ R xác định tập thuộc tính A={A1, , An} R phân mảnh thành R1, R2, , Rr •length(Ai): độ dài (byte) thuộc tính Ai ,AiA, •card( Ai(Rj): lực lượng phép chiếu mảnh Rj lên thuộc tính Ai (số giá trị phân biệt thuộc tính Ai) •max(Ai): giá trị cực đại thuộc tính Ai Dom(Ai) •min(Ai): giá trị cực tiểu thuộc tính Ai Dom(Ai) •card(dom(Ai)): lực lượng thuộc tính Ai 66 4.4 Tối ưu hố truy vấn CSDL phân tán Ngoài ra, liệu thống kê bao gồm hệ số chọn phép nối (SFJ) số cặp đại số quan hệ, hệ số SFJ quan hệ R S số thực 1, xác định bởi: card(R S) SFJ = card(R)*card(S) •Hệ số SFJ nhỏ phép nối có tính chọn tốt, ngược lại có tính chọn tồi •Các thống kê có lợi để đánh giá kích thước quan hệ trung gian •Kích thước quan hệ trung gian R xác định size(R) = card(R)*length(R) Trong đó, + length(R) độ dài (số byte) R, tính theo độ dài thuộc tính nó, + card(R) số R tính theo cơng thức 67 phần 4.4 Tối ưu hoá truy vấn CSDL phân tán 4.4.3 Lực lượng kết trung gian Các công thức để ước tính lực lượng kết phép tốn sở đại số quan hệ (chọn, chiếu, tích Decartes, nối, nửa nối, hợp hiệu) Các toán hạng quan hệ ký hiệu R S Hệ số chọn phép toán SFOP, (OP biểu thị phép toán) tỷ lệ toán hạng quan hệ tham gia vào kết phép tốn với số quan hệ Ví dụ: • SFJ : hệ số chọn phép nối • SFS : hệ số chọn phép chọn 68 4.4 Tối ưu hoá truy vấn CSDL phân tán Phép chọn: card( (R)) ? card( (R)) = SFS(F) * card(R) Trong SFS(F) phụ thuộc vào cơng thức chọn tính sau, với p(Ai), p(Aj) vị từ tương ứng với thuộc max(A) - value tính Ai, Aj SFS (A>value) = SFS (A=value) = max(A)-min(A) Card( A(R)) SFS (A