時間:2022-12-20 06:30:01 | 來源:信息時代
時間:2022-12-20 06:30:01 來源:信息時代
分布式查詢處理 : 采用全局查詢處理和局部查詢處理來實現(xiàn)分布式數(shù)據(jù)庫查詢的一種技術(shù)。通常,用戶或應用只能看到全局關系組成的全局數(shù)據(jù)庫,且只能在全局關系上完成查詢,并要采用高層數(shù)據(jù)操縱語言來表達全局查詢。之后,由系統(tǒng)將其轉(zhuǎn)換成內(nèi)部表示,并將全局查詢轉(zhuǎn)換為片段查詢。在查詢執(zhí)行過程中,最終涉及的是具體場地上的物理關系的查詢??梢?分布式查詢處理主要完成將高層的查詢語言(典型的為關系驗算)正確地轉(zhuǎn)換為語義等價的內(nèi)部語言(典型的為關系代數(shù)),并將全局查詢轉(zhuǎn)換為片段查詢。其中,查詢優(yōu)化具有重要作用,因為許多等價的內(nèi)部表示語言的執(zhí)行代價差別很大。因此,為提高查詢效率,在查詢處理過程中需要進行優(yōu)化處理。
查詢優(yōu)化就是確定出一種執(zhí)行代價最小的查詢執(zhí)行策略或?qū)ふ蚁鄬^優(yōu)的操作執(zhí)行步驟,以提高系統(tǒng)執(zhí)行效率。在分布式數(shù)據(jù)庫系統(tǒng)中,影響查詢處理效率的因素主要有: 網(wǎng)絡傳輸代價、局部I/O代價及CPU處理代價等。分布式查詢優(yōu)化的目標就是指局部執(zhí)行代價和網(wǎng)絡傳輸代價的和最小。局部執(zhí)行代價主要指輸入/輸出次數(shù)(I/O代價)及CPU處理代價。網(wǎng)絡傳輸代價主要指傳輸啟動代價和數(shù)據(jù)傳輸代價。通常,查詢優(yōu)化包括全局優(yōu)化和局部優(yōu)化兩部分。這里主要介紹全局查詢優(yōu)化,主要包括全局優(yōu)化和片段優(yōu)化。
1.全局優(yōu)化
全局優(yōu)化是將用戶請求構(gòu)成的查詢樹進行等價變換,得到一種“最好”的操作順序。等價變換的基本思想是先進行中間結(jié)果變小的運算??梢?全局優(yōu)化就是盡量先進行一元運算,使中間結(jié)果變小,以減少后續(xù)的二元運算代價,從而將一元運算推向查詢樹的底部。變換的通用準則為:
準則1: 盡可能將一元運算移到查詢樹的底部(樹葉部分),使之優(yōu)先執(zhí)行一元運算。
準則2: 利用一元運算的重復律,縮減每一關系,以減少關系尺寸,降低網(wǎng)絡傳輸量和I/O大小。
假設一供應關系數(shù)據(jù)庫中有供應者SUPPLIER{SNO,SNAME,AREA}和供應SUPPLY{SNO,PNO,QTY}兩關系,SNO、SNAME和AREA分別為供應者編號、供應者姓名和供應者所屬地域。PNO和QTY分別為零件號和數(shù)量。
若有查詢要求: “找出地域在 ‘北方’ 且供應100號零件的供應商的信息”,則SQL查詢語句為:
SELECT SNO,
SNAME FROM SUPPLIER,
SUPPLY WHERE AREA="北方"
AND PNO=100
AND SUPPLIER.SNO=SUPPLY.SNO
等價的關系表達式為:
Q1:∏SNO,SNAMEσAREA="北方"and PNO=100(SUPPLIER⋈SUPPLY)。
Q1的查詢樹如圖1(a)所示。
在查詢樹Q1的基礎上進行全局優(yōu)化。根據(jù)分配律,將一元運算向下移,得到全局優(yōu)化后的查詢樹Q2,如圖1(b)所示。在全局關系上的查詢,稱為全局查詢。如圖1中的Q1和Q2。
圖1 查詢樹
圖2 分片樹與轉(zhuǎn)換
圖3 Q3查詢樹
圖4 EMP分片樹
圖5 Q4片段查詢樹
圖6 Q5查詢樹
圖7 Q6查詢樹
圖8 Q7優(yōu)化后的查詢樹
微信公眾號
版權(quán)所有? 億企邦 1997-2022 保留一切法律許可權(quán)利。