Tối ưu hóa Truy vấn trong Hệ thống Phân tán
Chương này thảo luận về tối ưu hóa truy vấn trong hệ thống cơ sở dữ liệu phân tán.
Kiến trúc xử lý truy vấn phân tán
Trong hệ thống cơ sở dữ liệu phân tán, việc xử lý một truy vấn bao gồm việc tối ưu hóa ở cả cấp độ cục bộ và toàn cục. Truy vấn đi vào hệ thống cơ sở dữ liệu tại máy khách hoặc trang web điều khiển. Tại đây, người dùng được xác thực, truy vấn được kiểm tra, dịch và tối ưu hóa ở cấp độ toàn cầu.
Kiến trúc có thể được biểu diễn dưới dạng:
Ánh xạ các truy vấn toàn cầu thành các truy vấn cục bộ
Quá trình ánh xạ các truy vấn toàn cục đến các truy vấn cục bộ có thể được thực hiện như sau:
Các bảng được yêu cầu trong một truy vấn toàn cầu có các phân đoạn được phân phối trên nhiều trang web. Cơ sở dữ liệu cục bộ chỉ có thông tin về dữ liệu cục bộ. Trang web kiểm soát sử dụng từ điển dữ liệu toàn cầu để thu thập thông tin về việc phân phối và xây dựng lại chế độ xem toàn cầu từ các phân đoạn.
Nếu không có bản sao, trình tối ưu hóa toàn cục sẽ chạy các truy vấn cục bộ tại các trang web nơi các phân đoạn được lưu trữ. Nếu có bản sao, trình tối ưu hóa toàn cầu sẽ chọn trang web dựa trên chi phí truyền thông, khối lượng công việc và tốc độ máy chủ.
Trình tối ưu hóa toàn cầu tạo ra một kế hoạch thực thi phân tán sao cho lượng dữ liệu truyền ít nhất xảy ra trên các trang web. Kế hoạch nêu rõ vị trí của các phân đoạn, thứ tự các bước truy vấn cần được thực hiện và các quá trình liên quan đến việc chuyển các kết quả trung gian.
Các truy vấn cục bộ được tối ưu hóa bởi các máy chủ cơ sở dữ liệu cục bộ. Cuối cùng, kết quả truy vấn cục bộ được hợp nhất với nhau thông qua phép toán liên hợp trong trường hợp các đoạn ngang và hoạt động nối cho các đoạn dọc.
Ví dụ, chúng ta hãy xem xét rằng lược đồ Dự án sau đây được phân mảnh theo chiều ngang theo Thành phố, các thành phố là New Delhi, Kolkata và Hyderabad.
DỰ ÁN
PId | Tp. | Phòng ban | Trạng thái |
Giả sử có một truy vấn để lấy thông tin chi tiết của tất cả các dự án có trạng thái là "Đang thực hiện".
Truy vấn toàn cục sẽ & inus;
$$ \ sigma_ {status} = {\ small "đang diễn ra"} ^ {(PROJECT)} $$
Truy vấn trong máy chủ của New Delhi sẽ là -
$$ \ sigma_ {status} = {\ small "đang diễn ra"} ^ {({NewD} _- {PROJECT})} $$
Truy vấn trong máy chủ của Kolkata sẽ là -
$$ \ sigma_ {status} = {\ small "đang diễn ra"} ^ {({Kol} _- {PROJECT})} $$
Truy vấn trong máy chủ của Hyderabad sẽ là -
$$ \ sigma_ {status} = {\ small "đang diễn ra"} ^ {({Hyd} _- {PROJECT})} $$
Để có được kết quả tổng thể, chúng ta cần kết hợp các kết quả của ba truy vấn như sau:
$ \ sigma_ {status} = {\ small "đang diễn ra"} ^ {({NewD} _- {PROJECT})} \ cup \ sigma_ {status} = {\ small "đang diễn ra"} ^ {({kol} _- {PROJECT})} \ cup \ sigma_ {status} = {\ small "đang diễn ra"} ^ {({Hyd} _- {PROJECT})} $
Tối ưu hóa Truy vấn Phân tán
Tối ưu hóa truy vấn phân tán yêu cầu đánh giá một số lượng lớn các cây truy vấn, mỗi cây trong số đó tạo ra kết quả cần thiết của một truy vấn. Điều này chủ yếu là do sự hiện diện của một lượng lớn dữ liệu được sao chép và phân mảnh. Do đó, mục tiêu là tìm ra giải pháp tối ưu thay vì giải pháp tốt nhất.
Các vấn đề chính để tối ưu hóa truy vấn phân tán là -
- Sử dụng tối ưu tài nguyên trong hệ thống phân tán.
- Giao dịch truy vấn.
- Giảm không gian giải pháp của truy vấn.
Sử dụng tối ưu tài nguyên trong hệ thống phân tán
Hệ thống phân tán có một số máy chủ cơ sở dữ liệu trong các trang web khác nhau để thực hiện các hoạt động liên quan đến truy vấn. Sau đây là các cách tiếp cận để sử dụng tài nguyên tối ưu -
Operation Shipping- Trong vận chuyển hoạt động, hoạt động được thực hiện tại trang web lưu trữ dữ liệu chứ không phải tại trang web khách hàng. Kết quả sau đó được chuyển đến trang khách hàng. Điều này thích hợp cho các hoạt động mà các toán hạng có sẵn tại cùng một trang web. Ví dụ: Các thao tác Chọn và Dự án.
Data Shipping- Trong vận chuyển dữ liệu, các đoạn dữ liệu được chuyển đến máy chủ cơ sở dữ liệu, nơi các hoạt động được thực thi. Điều này được sử dụng trong các hoạt động mà toán hạng được phân phối tại các vị trí khác nhau. Điều này cũng thích hợp trong các hệ thống có chi phí truyền thông thấp và bộ xử lý cục bộ chậm hơn nhiều so với máy chủ khách.
Hybrid Shipping- Đây là sự kết hợp giữa dữ liệu và vận chuyển hoạt động. Tại đây, các đoạn dữ liệu được chuyển đến bộ xử lý tốc độ cao, nơi hoạt động chạy. Kết quả sau đó được gửi đến trang web của khách hàng.
Giao dịch truy vấn
Trong thuật toán giao dịch truy vấn cho các hệ thống cơ sở dữ liệu phân tán, trang web kiểm soát / khách hàng cho một truy vấn phân tán được gọi là người mua và các trang web thực hiện các truy vấn cục bộ được gọi là người bán. Người mua đưa ra một số phương án thay thế để chọn người bán và để xây dựng lại kết quả toàn cầu. Mục tiêu của người mua là đạt được chi phí tối ưu.
Thuật toán bắt đầu với việc người mua chỉ định các truy vấn phụ cho các trang web của người bán. Kế hoạch tối ưu được tạo ra từ các kế hoạch truy vấn được tối ưu hóa cục bộ do người bán đề xuất kết hợp với chi phí truyền thông để tạo lại kết quả cuối cùng. Khi kế hoạch tối ưu chung được xây dựng, truy vấn được thực hiện.
Giảm không gian giải pháp của truy vấn
Giải pháp tối ưu thường liên quan đến việc giảm không gian giải pháp để giảm chi phí truy vấn và truyền dữ liệu. Điều này có thể đạt được thông qua một tập hợp các quy tắc heuristic, cũng giống như heuristics trong các hệ thống tập trung.
Sau đây là một số quy tắc -
Thực hiện các thao tác chọn và chiếu càng sớm càng tốt. Điều này làm giảm luồng dữ liệu qua mạng truyền thông.
Đơn giản hóa các thao tác trên các phân đoạn ngang bằng cách loại bỏ các điều kiện lựa chọn không liên quan đến một trang web cụ thể.
Trong trường hợp các hoạt động liên kết và liên kết bao gồm các phân đoạn nằm trong nhiều trang web, hãy chuyển dữ liệu bị phân mảnh đến trang web có hầu hết dữ liệu và thực hiện hoạt động ở đó.
Sử dụng thao tác bán nối để đủ điều kiện các bộ giá trị sẽ được tham gia. Điều này làm giảm số lượng truyền dữ liệu do đó giảm chi phí truyền thông.
Hợp nhất các lá chung và cây con trong một cây truy vấn phân tán.