Đầu vào bộ tối ưu hoá câu truy vấn

Một phần của tài liệu luận văn thạc sĩ tối ưu hóa truy vấn trong cơ sở dữ liệu phân tán (1) (Trang 58 - 63)

5. Các kết quả dự kiến đạt đƣợc

3.4.1.Đầu vào bộ tối ưu hoá câu truy vấn

3.4.1.1. Mô hình 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 chi phí (total cost) hoặc theo thời gian trả lời. Tổng chi phí là tổng của tất cả các thành phần chi phí, 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 chi phí như sau [7]:

Total_cost = CCPU*#insts + CI/O*#I/Os + CMSG #msgs + CTR*#bytes

Trong đó: Total_cost - là tổng chi phí; CCPU - chi phí của một lệnh CPU; CI/O- chi phí của một truy xuất/nhập đĩa; CMSG - chi phí cố định của việc khởi đầu và nhận một thông báo; CTR - chi phí truyền một đơn vị dữ liệu từ trạm này tới trạm khác, ta xem CTR 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 chi phí đầu là chi phí địa phương, hai thành phần sau là chi phí truyền thông. Chi phí truyền thông để chuyể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.

CC(#bytes) = CMSG + CTR*#bytes

Chi phí được biểu diễn theo đơn vị thời gian và từ đó có thể chuyển qua các đơn vị khác.

Cấu hình của mạng ảnh hưởng lớn đến các thành phần chi phí. Trong một mạng diện rộng như ARPANET (10kbps), do truyền thông chậm hơn xử lý địa

Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

phương nên chi phí truyền thông là yếu tố trọng yếu. Tỷ lệ giữa chi phí truyền thông và chi phí I/O cho một trạng thái nhớ khoảng 20:1 [7]. Do đó, hầu hết các hệ quản trị cơ sở dữ liệu phân tán được thiết kế cho mạng WAN bỏ qua chi phí xử lý địa phương và tập trung vào tối thiểu hoá chi phí truyền trông. Trong một mạng cục bộ như Ethernet (10Mbps), chi phí xử lý địa phương góp phần đáng kể vào tổng chi phí. Tỷ lệ giữa chi phí truyền thông và chi phí I/O là 1:1.6 [7]. Do đó, các hệ quản trị cơ sở dữ liệu phân tán được thiết kế cho mạng LAN coi như gồm cả ba thành phần chi phí.

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 xử lý địa phương song song và truyền thông song song phải được xét. Công thức tổng quát tính thời gian trả lời (response time) là [7]:

Response_time = CCPU*seq_#insts + CI/O*seq_#I/Os + CMSG *seq_#msgs + CTR*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. Như vậy có thể bỏ qua bất kỳ xử lý và truyền thông được thực hiện song song.

Ví dụ 3.16: Minh hoạ sự khác nhau giữa tổng chi phí 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ạmg 2, ở đây chi phí truyền thông được xét

Giả sử, CMSG và CTR được biểu thị theo đơn vị thời gian. Tổng chi phí truyền x đơn vị dữ liệu từ trạm 1 đến 3 và y đơn vị dữ liệu từ trạm 2 đến trạm 3 là:

Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Vì việc truyền dữ liệu có thể thực hiện song song nên thời gian trả lời câu truy vấn là: Response_time = max{CMSG + CTR*x, CMSG + CTR*y}

Thời gian trả lời tối thiểu đạt được bằng cách tăng mức độ xử lý song song, tuy nhiên không có nghĩa tổng chi phí là tối thiểu. Ngược lại, tổng chi phí có thể tăng khi có nhiều xử lý địa phương và truyền song song hơn.

3.4.1.2 Các thống kê cơ sở dữ liệu

Yếu tố chính ảnh hưởng đến hiệu suất của một chiến lược thực thi là kích thước của các quan hệ trung gian sinh ra trong quá trình thực hiện. Khi gặp phép toán tiếp theo đặt tại một trạm khác, quan hệ trung gian phải được truyền lên mạng. Do vậy, để tối thiểu hoá khối lượng dữ liệu truyền, điểm quan tâm đầu tiên là đánh giá kích thước kết quả trung gian của các phép toán đại số quan hệ. Đánh giá này dựa trên các thông tin thống kê về các quan hệ cơ sở và các công thức ước tính lực lượng của kết quả của các ph p toán quan hệ. Quan hệ R xác định trên A = {A1, A2,...,An} được phân đoạn thành R1, R2,...,Rr. Khi đó dữ liệu thống kê điển hình bao gồm [7]:

1. Với mỗi thuộc tính Ai, độ dài của Ai ký hiệu là length(Ai); với mỗi Ai Rj, lực lượng của phép chiếu của đoạn Rj trên Ai ký hiệu là card(Ai(Rj)) (số giá trị phân biệt trên mỗi thuộc tính).

2. Miền xác định của Ai là tập số nguyên hoặc tập số thực, có max(Ai) và min(Ai).

3. Lực lượng của miền Ai kí hiệu là card(dom[Ai]), đó là số các giá trị duy nhất trên mỗi miền trị của thuộc tính Ai.

4. Số các bộ trong mỗi đoạn Rj ký hiệu là card(Rj) Ngoài ra, dữ liệu thống kê cũng bao gồm hệ số chọn của phép kết nối (SFJ) đối với số cặp quan hệ; hệ số SFJ của quan hệ R và S là một số thực giữa 0 và 1:

Hệ số SFJ nhỏ thì phép kết 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ê này có lợi để đánh giá kích thước của các quan hệ trung gian. Kích thước của một quan hệ trung gian R như sau:

Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Trong đó: card(R) là số các bộ của R được tính theo các công thức ở phần sau.

3.4.1.3. Lực lượng của các kết quả trung gian

Phần này sẽ đưa ra các công thức để ước tính lực lượng của kết quả của các phép toán cơ sở của đaị số quan hệ (phép chọn, phép chiếu, phép tích Decartes, kết nối, nửa kết nối, phép hợp và phép trừ). Các toán hạng quan hệ được ký hiệu bởi R và S. Hệ số chọn của một phép toán (SFOP, OP biểu thị phép toán) là tỷ lệ giữa các bộ của một toán hạng quan hệ tham gia vào kết quả của phép toán.

Phép chọn:

Card(sF(R)) = SFS(F) * card(R)

Trong đó SFS(F) phụ thuộc vào công thức chọn và có thể tính như sau:

SFS(p(Ai)p(Aj))= SFS(p(Ai)) * SFS(p(Aj))

SFS(p(Ai)p(Aj))= SFS(p(Ai)) + SFS(p(Aj)) - SFS(p(Ai)) * SFS(p(Aj)) SFS(A{values}) = SFS(A=values) * card({values})

Trong đó: p(Ai), p(Aj) là các tân từ tương ứng trên các thuộc tính Ai, Aj

Phép chiếu:

Phép chiếu có thể có hoặc không loại bỏ bản sao, ở đây chỉ xét phép chiếu loại bỏ bản sao. Lực lượng quan hệ kết quả của một phép chiếu tuỳ ý là khó đánh giá chính xác, vì tương quan giữa các thuộc tính chiếu là thường không biết. Tuy nhiên, có hai trường hợp tầm thường nhưng đặc biệt có lợi. Nếu phép chiếu của R trên một thuộc tính đơn A thì lực lượng đơn giản là số các bộ khi phép chiếu được thực hiện. Nếu một trong các thuộc tính chiếu là khoá của R thì:

Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Tích Decartes:

card(R S) = card(R) * card(S)

Phép kết nối:

Không có cách tổng quát để đánh giá lực lượng của một phép kết nối nếu không có các thông tin thêm. Cận trên của lực lượng của phép kết nối là lực lượng của tích Decartes. Tuy nhiên có một trường hợp xuất hiện thường xuyên và cách đánh giá là đơn giản. Nối R ⊲⊳A=BS với AR, BS, trong đó A là khoá của R, B là khoá ngoài của S, thì lực lượng của kết quả xấp xỉ là:

card(R ⊲⊳A=BS)= card(S)

Vì mỗi bộ của S hợp với nhiều nhất một bộ của R. Hiển nhiên, vẫn đúng nếu B là khoá của S, A là khoá ngoài của R. Tuy nhiên, đánh giá này là một cận trên vì giả sử rằng mỗi biến của R tham gia vào phép kết nối. Với các phép kết nối khác, lực lượng của kết quả là:

card(R ⊲⊳ S) = SFJ*card(R) * card(S)

Nửa kết nối:

Hệ số chọn của phép nửa kết nối (SFSJ) xấp xỉ là:

Công thức này chỉ phụ thuộc vào thuộc tính A của S, nên thường được gọi là hệ số chọn của thuộc tính A của S, ký hiệu SFSJ(S.A) và là hệ số chọn của S.A trên bất cứ thuộc tính kết nối khác. Vì thế, lực lượng của phép nửa kết nối được cho như sau:

card(R⋉AS) = SFSJ (S.A)*card(R)

Phép hợp:

Rất khó đánh giá số lượng của RẩS, vì các bộ giống nhau giữa R và S bị loại bỏ bởi phép hợp. ở đây, chỉ đưa ra công thức tính cận trên bằng card(R) + card(S), cận dưới bằng max{card(R), card(S)}(giả sử R và S không chứa các bộ lặp).

Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Phép trừ:

Cũng như phép hợp, ở đây chỉ đưa ra cận trên và cận dưới. Cận trên của card(R-S) là card(R), cận dưới là 0.

Một phần của tài liệu luận văn thạc sĩ tối ưu hóa truy vấn trong cơ sở dữ liệu phân tán (1) (Trang 58 - 63)