Hình dáng của một số cây nối

Một phần của tài liệu (LUẬN văn THẠC sĩ) tối ưu hóa cơ sở dữ liệu phân tán 04 (Trang 53 - 55)

2.2.3.2. Chiến lược tìm kiếm

Chiến lược tìm kiếm là các thuật toán được áp dụng để xác định kế hoạch thực thi truy vấn tốt nhất từ không gian tìm kiếm để giảm chi phí tối ưu hóa truy vấn. Có hai chiến lược cơ bản:

- Chiến lược xác định (Deterministic Strategy): Chiến lược này tiến hành bằng cách xây dựng các kế hoạch, bắt đầu từ các quan hệ cơ sở, sau đó nối thêm một hoặc

phí tối ưu hóa, những kế hoạch không dẫn đến giải pháp tối ưu được cắt bỏ. Có hai cách: Theo chiều rộng - xây dựng tất cả các kế hoạch có thể trước khi chọn kế hoạch tốt nhất (Quy hoạch động (Dynamic Programming)), theo chiều sâu – chỉ xây dựng một kế hoạch (Greedy).

- Chiến lược ngẫu nhiên (Randomized Strategy): Tiến hành tìm kiếm giải pháp tối ưu xung quanh một số điểm cụ thể. Chiến lược này không đảm bảo kế hoạch tối ưu nhưng tránh chi phí cao trong tối ưu hóa về bộ nhớ và thời gian thực hiện. Chiến lược này áp dụng tốt hơn với câu truy vấn có 5 - 6 quan hệ trở lên. Hai kỹ thuật tiêu biểu là Interative Improvement và Simulated Annealing [4].

2.2.3.3. Mô hình chi phí

Mô hình chi phí của bộ tối ưu hóa gồm có các hàm chi phí để dự đoán chi phí của các toán tử, số liệu thống kê, dữ liệu cơ sở và các công thức để ước lượng kích thước các kết quả trung gian.

 Hàm chi phí

Chi phí của một chiến lược thực hiện phân tán có thể được biểu diễn hoặc theo tổng thời gian (total time) hoặc theo thời gian trả lời (response time). Tổng thời gian là tổng của tất cả các thành phần thời gian, còn thời gian trả lời tính từ lúc bắt đầu đến lúc kết thúc câu truy vấn. Công thức chung để tính tổng thời gian như sau:

Total_time = TCPU* #insts + TI/O* #I/Os + TMSG * #msgs + TTR* #bytes

Trong đó:

Total_time: Tổng thời gian;

TCPU: Thời gian của một lệnh CPU;

TI/O: Thời gian cho một thao tác truy xuất/nhập đĩa;

TMSG: Thời gian cố định của việc khởi hoạt và nhận một thông báo;

TTR: Thời gian cần để truyền một đơn vị dữ liệu từ trạm này tới trạm khác, ta xem TTR là hằng số;

#insts, #I/Os, #msgsm, #byte: Tương ứng là tổng trên các trạm của tất cả các số lệnh CPU, số lần truy xuất/ nhập đĩa, số thông báo, kích thước của tất cả các thông báo.

Trong công thức trên, hai thành phần đầu là thời gian xử lý cục bộ, hai thành phần sau là thời gian truyền. Thời gian truyền #bytes dữ liệu từ trạm này đến trạm khác được giả thiết là một hàm tuyến tính của #bytes.

CT(#bytes) = TMSG + TTR* #bytes

Khi thời gian trả lời của câu truy vấn là hàm mục tiêu của bộ tối ưu thì các chi phí xử lý cục bộ song song và truyền thông song song được xem xét. Công thức tổng quát tính thời gian trả lời (response time) là:

Response_time = TCPU * seq_#insts + TI/O * seq_#I/Os + TMSG * seq_#msgs + TTR * seq_#bytes

Trong đó: seq_#x (x có thể là các lệnh CPU, I/O, các thông báo, các byte) là số lớn nhất của x phải được thực hiện tuần tự đối với sự thực thi của câu truy vấn.

Ví dụ 2.15: Hình 2.17 minh hoạ sự khác nhau giữa tổng thời gian và thời gian trả lời, trong đó máy tính trả lời câu truy vấn tại trạm 3 với dữ liệu từ trạm 1 và trạm 2, ở đây chi phí truyền thông được xét.

Một phần của tài liệu (LUẬN văn THẠC sĩ) tối ưu hóa cơ sở dữ liệu phân tán 04 (Trang 53 - 55)

Tải bản đầy đủ (PDF)

(79 trang)