Tối ưu hoỏ trong truy vấ n:

Một phần của tài liệu Ôn tập môn học cơ sở dữ liệu phân tán (Trang 27)

1. Truy vấn thu được từ giai đoạn phõn ró và định vị dữ liệu cú thể được thực hiện một cỏch đơn giản bằng việc thờm vào cỏc thao tỏc truyền thụng.

2. Việc hoỏn vị thứ tự cỏc phộp toỏn trong một cõu truy vấn cú thể cung cấp nhiều chiến lược tương đương khỏc nhau.

3. Bài toỏn xỏc định cõy truy vấn tối ưu là NP-khú> Thụng thường bộ tối ưu tỡm tỡm một chiến lược gần tối ưu và trỏnh cỏc chiến lược “tồi”.

4. Đầu ra của bộ tối ưu là một lịch trỡnh được tối ưu bao gồm truy vấn đại số được xỏc định trờn cỏc mảnh và cỏc phộp toỏn truyền thụng hỗ trợ việc thực hiện truy vấn trờn cỏc trạm.

5. Để chọn lựa được một chiến lược tối ưu núi chung, bộ tối ưu phải xỏc định chi phớ thực hiện cõu truy vấn.

6. Chi phớ thực hiện là tổ hợp cú trọng số của chi phớ truyền thụng, chi phớ I/O và chi phớ CPU.

* Mụ hỡnh chi phớ của bộ tối ưu húa truy vấn

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ớ 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ớ. bao gồm chi phớ truyền thụng, chi phớ

I/O và chi phớ CPU.

Tuy nhiờn, để đơn giản ta bỏ qua chi phớ xử lý địa phương (I/O, CPU), coi chi phớ truyền thụng là trọng yếu.

Thời gian trả lời truy vấn là thời gian được tớnh từ khi bắt đầu xử lý đến khi hoàn thành truy

vấn.

* Cụng thức chung cho sự xỏc định tổng chi phớ:

Tổng chi phí: tổng của tất cả các chi phí CCPU, CI/O. CMSG Total_cost= CCPU * #instr + CI/O * #I/OS + CMSG * #msgs +

+ CTR * #bytes

Trong đú: Total_cost: tổng chi phớ CCPU: chi phớ của một lệnh CPU CI/O: chi phớ của một xuất/nhập đĩa

CMSG: chi phớ của việc khởi đầu và nhận một thụng bỏo. (a) Truy vấn ban đầu

πTENNV π TENNV σMANV=”E5” σMANV=”E5”E1 E2 E3 E2 (b) Truy vấn đó rỳt gọn Hỡnh 4.11: Rỳt gọn của phõn mảnh hỗn hợp

CTR: chi phớ truyền một đơn vị dữ liệu từ trạm này đến tram khỏc, ta xem CTR như là một hằng

số.

#instr: tổng tất cả cỏc lệnh CPU ở cỏc trạm #I/OS: số lần xuất/nhập đĩa

#msgs: số thụng bỏo

#bytes: tổng kớch thước của tất cả cỏc thụng bỏo. 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) là chi phớ địa phương. • Hai thành phần chi phớ sau (CMSG, CTR) là chi phớ truyền thụng.

• Chi phớ truyền thụng để chuyển #byte 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 theo số #bytes được truyền đi, được xỏc định bởi cụng thức CC(#byte)=

CMSG + CTR * bytes

* Cụng thức chung cho sự 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) là số lớn nhất của x khi thực hiện

truy vấn một cách tuần tự.

Trong đú: Response_time: thời gian trả lời truy vấn

CCPU: chi phớ của một lệnh CPU CI/O: chi phớ của một xuất/nhập đĩa

CMSG: chi phớ 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 đến trạm khỏc #instr: tổng tất cả cỏc lệnh CPU ở cỏc trạm

#I/OS: số lần xuất/nhập đĩa #msgs: số thụng bỏo

#bytes: tổng kớch thước của tất cả cỏc thụng bỏo.

Ví dụ: Minh hoạ sự khác nhau giữa tổng chi phíthời gian trả lời, trong đó máy tính trả lời truy vấn tại trạm 3 với dữ liệu từ trạm 1 và 2, ở đây chỉ có 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ị từ trạm 1 đến trạm 3 và y đơn vị từ trạm 2 đến trạm 3 là:

Total_cost = CMSG + CTR*x + CMSG+ CTR*y =2CMSG+ CTR* (x+y)

Vì việc truyền dữ liệu có thể đợc thực hiện song song nên thời gian trả lời của truy vấn là

Response_time = max{CMSG + CTR* x, CMSG + CTR* y}

* Cỏc thống kờ 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 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 trờn mạng.

Trạm 2 Trạm 1

Trạm 3

x

y

• Do đú để tối thiểu hoỏ khối lượng dữ liệu truyền đi, điều 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ỏc phộp toỏn quan hệ.

Mục đớch của thống kờ dữ liệu:

- Xỏc định kớch thước của cỏc quan hệ trung gian sinh ra trong quỏ trỡnh thực hiện cõu truy vấn - Xỏc định chi phớ truyền thụng cho cỏc đại lượng trung gian

Một số ký hiệu

Cho quan hệ R xỏc định trờn tập thuộc tớnh A={A1, ..., An}. R được phõn mảnh thành R1, R2, ..., Rr.

length(Ai): độ dài (byte) của thuộc tớnh Ai ,Ai∈R,

card(πAi(Rj): lực lượng của phộp chiếu của mảnh Rj lờn thuộc tớnh Ai (số giỏ trị phõn biệt trờn

thuộc tớnh Ai) .

max(Ai): giỏ trị cực đại của thuộc tớnh Ai trong Dom(Ai)

min(Ai): giỏ trị cực tiểu của thuộc tớnh Ai trong Dom(Ai)

card(dom(Ai)): lực lượng của thuộc tớnh Ai

card(Ri)): số cỏc bộ trong mảnh Ri

Ngoài ra, dữ liệu thống kờ cũng bao gồm hệ số chọn của phộp nối (SFJ) đối với một số cặp đại số quan hệ, hệ số SFJ của quan hệ R và S là một số thực giữa 0 và 1, được xỏc định bởi:

• Hệ số SFJ nhỏ thỡ 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ờ này cú lợi để đỏnh giỏ kớch thước của quan hệ trung gian.

• Kớch thước một quan hệ trung gian R được xỏc định bởi size(R) = card(R)*length(R). Trong đú,

+ length(R) là độ dài (số byte) của mỗi bộ trong R, được tớnh theo độ dài cỏc thuộc tớnh của nú, + card(R) là số cỏc bộ của R được tớnh theo cụng thức ở phần tiếp theo.

* 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 kết quả cỏc phộp toỏn cơ sở của đại số quan hệ (phộp chọn, phộp chiếu, phộp tớch Decartes, nối, nửa 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.

Vớ dụ:

. SFJ : hệ số chọn của phộp nối . SFS : hệ số chọn của phộp chọn

Phộp chọn

card(σ (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, với p(Ai), p(Aj) là cỏc tõn từ tương ứng với cỏc thuộc tớnh Ai, Aj.

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

SFJ = card(R S) J = card(R S) card(R)*card(S) Card(πA(R)) 1 SFS (A=value) =

SFS (A>value) = max(A) - value max(A)-min(A)

SFS (A>value) = Value - min(A)

SFS(p(Ai)∨ p(Aj)) = SFS(p(Ai))+SFS(p(Aj))-SFS(p(Ai))* SFS(p(Aj)) SFS(A ∈{value}) = SFS(A=value) * card({value})

Phộp chiếu

Phộp chiếu cú thể cú hoặc khụng loại bỏ cỏc bản sao, ở đõy chỉ xột phộp chiếu loại bỏ cỏc bản sao. Lực lượng quan hệ kết quả của một phộp chiếu tựy ý là khú đỏnh giỏ chớnh xỏc, vỡ tương quan giữa 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 được tớnh đơ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ỡ card(πA(R)) = card(R) và card(RìS) = card(R) * card(S)

Phộp nối

• Khụng cú một cỏch tổng quỏt để xỏc định lực lượng của một phộp 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 nối chớnh là lực lượng của tớch Decartes.

• Tuy nhiờn, cú một số trường hợp xuất hiện thường xuyờn và việc đỏnh giỏ là đơn giản:

- Nếu R AB S 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 AB S) = card(R)

• Với cỏc phộp nối khỏc, lực lượng của kết quả là: card(R S) = SFJ * card(R) * card(S)

Phộp nửa nối

Hệ số chọn của phộp nửa 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 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 nối khỏc. Vỡ thế, lực lượng của phộp nối được tớnh 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ỳng ta chỉ đưa ra cụng thức tớnh:

- cận trờn của card(R∪S) bằng card(R)+card(S), - cận dưới của card(R∪S) bằng max{card(R),card(S)} (giả sử R và S khụng chứa cỏc bộ lặp).

* 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. SF SJ (R S) = Card(πA(S)) Card(dom[A])

Một phần của tài liệu Ôn tập môn học cơ sở dữ liệu phân tán (Trang 27)