日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

pu代表什么意思 pua代表什么意思( 三 )


表達(dá)式檢查
為了確保查詢輸出的列和補(bǔ)償謂詞需要的列都能從視圖中計(jì)算出來(lái),我們需要一種方法確定來(lái)自查詢的表達(dá)式是否和視圖中的表達(dá)式相等,或者能從中計(jì)算出來(lái) 。表達(dá)式檢查無(wú)法純粹從語(yǔ)法上實(shí)現(xiàn),兩個(gè)表達(dá)式或者符號(hào)的文本相同,并不說(shuō)明他們關(guān)系相等 。例如別名的存在就會(huì)破壞基于語(yǔ)法的檢查 。
表達(dá)式檢查需要通過(guò)等價(jià)關(guān)系和表的對(duì)應(yīng)關(guān)系推導(dǎo)而來(lái) 。如果視圖和查詢中所有的表都是唯一的,那么來(lái)自同一個(gè)表的列是等價(jià)的;如果視圖和查詢中有表出現(xiàn)多次,即 self join,那么查詢到視圖的表的映射就存在多種可能,每種可能都需要進(jìn)行一次改寫嘗試 。有了視圖和查詢之間列的對(duì)應(yīng)關(guān)系和上一節(jié)的等價(jià)關(guān)系,通過(guò)代數(shù)系統(tǒng)確定來(lái)自查詢的表達(dá)式是否和視圖中的表達(dá)式相等,或者能否從中計(jì)算出來(lái) 。
存在一些啟發(fā)式的規(guī)則,允許一個(gè)表達(dá)式從另外的表達(dá)式中計(jì)算出來(lái) 。比如算數(shù)規(guī)則從 x + 1 中計(jì)算出 x,例如 SUM(x) 和 COUNT(x) 計(jì)算出 AVG(x),還存在一些 Function Dependency 規(guī)則,例如時(shí)間函數(shù),可以通過(guò)返回的天的結(jié)果計(jì)算年等 。
謂詞檢查
視圖改寫需要物化視圖中存在查詢所有需要的行數(shù) , 即視圖的謂詞的范圍大于或等于查詢的范圍 。使用 Wq 表示查詢的謂詞 , Wv表示視圖的謂詞,我們需要檢查 Wq => Wv,其中 => 表示 Wq 滿足 Wv 的含義 。
優(yōu)化器提取所有的謂詞,并將他們轉(zhuǎn)換為 CNF 的形式,即 W=P1 ^ P2 ^ ... ^ Pn 。將謂詞按照等值謂詞 , 范圍謂詞和剩余謂詞進(jìn)一步分為 W= PE ^ PR ^ PU 。PE,PR , PU 分別代表等值謂詞,范圍謂詞和剩余謂詞 。謂詞檢查變成了 PEq ^ PRq ^ PUq => PEv ^ PRv ^ PUv,由于正交的性質(zhì),最終將問(wèn)題分解成 PEq => PEv,PEq ^ PRq => PRv,PEq ^ PUq => PUv 三類檢查 。
查詢的等值謂詞用于推導(dǎo)等價(jià)關(guān)系 。查詢中任何視圖不滿足等價(jià)關(guān)系的謂詞都構(gòu)成補(bǔ)償謂詞,視圖中存在查詢無(wú)法滿足的等價(jià)關(guān)系則無(wú)法改寫 。
范圍謂詞在優(yōu)化器中可以存儲(chǔ)為范圍的形式,可以方便的計(jì)算差集 。對(duì)于查詢中每一個(gè)范圍謂詞,如果視圖存在對(duì)應(yīng)的范圍精準(zhǔn)匹配,不需要進(jìn)行補(bǔ)償,否則視圖范圍必須大于查詢的范圍,并通過(guò)差集構(gòu)造一個(gè)補(bǔ)償謂詞 。
查詢表達(dá)式和試圖剩余的謂詞共同構(gòu)成剩余謂詞PE,只能進(jìn)行精準(zhǔn)匹配 。查詢中任何與視圖不匹配的謂詞都構(gòu)成補(bǔ)償謂詞 。查詢與視圖不匹配則無(wú)法改寫 。
所有的補(bǔ)償謂詞都需要通過(guò)表達(dá)式檢查,確??梢詮囊晥D的輸出中計(jì)算出來(lái) 。
例如查詢
select l_orderkey, o_custkey, l_partkey,l_quantity*l_extendedpricefrom lineitem, orders, partwhere l_orderkey = o_orderkeyand l_partkey= p_partkeyand l_partkey >= 150 and l_partkey <= 160and o_custkey = 123and o_orderdate = l_shipdateand p_name like ‘%abc%’and l_quantity*l_extendedprice > 100物化視圖
create materialized view mview2Enable Query Rewriteas select l_orderkey, o_custkey, l_partkey,l_shipdate, o_orderdate,l_quantity*l_extendedprice as gross_revenuefrom lineitem, orders, partwhere l_orderkey = o_orderkeyand l_partkey= p_partkeyand p_partkey >= 150and o_custkey >= 50 and o_custkey <= 500and p_name like ‘%abc%’查詢可以被改寫為
select l_orderkey, o_custkey, l_partkey, gross_revenuefrom mview2where l_partkey <= 160and o_custkey = 123and o_orderdate = l_shipdateand gross_revenue > 100Grouping 和 Aggregation 檢查
如果視圖和查詢帶有 GroupBy 或 Aggregation 函數(shù) , 需要進(jìn)行額外檢查:
檢查查詢請(qǐng)求的數(shù)據(jù)分組是否與物化視圖中存儲(chǔ)的數(shù)據(jù)分組相同,如果不同,優(yōu)化器會(huì)嘗試對(duì)物化視圖進(jìn)行匯總 。如果需要進(jìn)一步匯總計(jì)算,所有需要的列的都可以從視圖輸出中計(jì)算出來(lái) 。例如查詢

推薦閱讀