oracle中的增強(qiáng)子查詢優(yōu)化

oracle中的增強(qiáng)子查詢優(yōu)化

ID:37416412

大?。?29.00 KB

頁數(shù):25頁

時(shí)間:2019-05-23

oracle中的增強(qiáng)子查詢優(yōu)化_第1頁
oracle中的增強(qiáng)子查詢優(yōu)化_第2頁
oracle中的增強(qiáng)子查詢優(yōu)化_第3頁
oracle中的增強(qiáng)子查詢優(yōu)化_第4頁
oracle中的增強(qiáng)子查詢優(yōu)化_第5頁
資源描述:

《oracle中的增強(qiáng)子查詢優(yōu)化》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。

1、Oracle中的增強(qiáng)子查詢優(yōu)化這篇文章是我偶然在asktom上看到的,當(dāng)時(shí)有人問子查詢合并(subquerycoalescing),TOM給出了這篇文章的鏈接:http://www.vldb.org/pvldb/2/vldb09-423.pdf我花了大約一周時(shí)間翻譯,有很多術(shù)語找不到相關(guān)翻譯就只好自己杜撰一個(gè),根據(jù)自己的理解對(duì)一些難懂的地方做了注釋。如果你發(fā)現(xiàn)了錯(cuò)誤請(qǐng)不吝指正。文中的例子非常值得一讀,目前我沒有時(shí)間去一一驗(yàn)證哪些已由CBO實(shí)現(xiàn),如果你都看懂了對(duì)提高自己的SQL技巧是非常有幫助的。插圖只上傳了前四個(gè),后面的都是一些關(guān)于性

2、能的圖表,自己看原文即可。Oracle中的增強(qiáng)型子查詢優(yōu)化作者:SrikanthBellamkonda(Srikanth.Bellamkonda@oracle.com)????AngelaAmor(Angela.Amor@oracle.com)????RafiAhmed(Rafi.Ahmed@oracle.com)????MohamedZait(Mohamed.Zait@oracle.com)????AndrewWitkowski(Andrew.Witkowski@oracle.com)????Chun-ChiehLin(Chun-C

3、hieh.Lin@oracle.com)????????OracleUSA????500OracleParkway????RedwoodShores,CA,USA(版權(quán)歸原作者所有,未經(jīng)許可不得轉(zhuǎn)載)摘要本文描述了ORACLE關(guān)系數(shù)據(jù)庫系統(tǒng)中的增強(qiáng)型子查詢優(yōu)化。它討論了幾種技術(shù)——子查詢合并,利用窗口函數(shù)(譯者注:即分析函數(shù))的子查詢消除,對(duì)分組查詢的視圖消除(viewelimination)。這些技術(shù)辨認(rèn)出查詢結(jié)構(gòu)中的冗余成分,并把它們?nèi)コ?,將查詢轉(zhuǎn)換為可能更加優(yōu)化的形式。本文也討論了新型的并行執(zhí)行技術(shù),該技術(shù)應(yīng)用廣泛,并可用來改善

4、這些經(jīng)過變換的查詢的可擴(kuò)展性。它還描述了一種反連接(antijoin)的變種,用來優(yōu)化在有空值的列上帶全稱量詞(譯者注:在SQL中指ALL這類量詞)的查詢。它隨后演示了這些優(yōu)化的結(jié)果,表明在執(zhí)行速度上有著顯著的改善。1.介紹當(dāng)今的關(guān)系數(shù)據(jù)庫系統(tǒng)處理各種復(fù)雜的SQL查詢,包括帶有聚合函數(shù),UNION/UNIONALL,DISTINCT,分組(GROUPBY)視圖等等的嵌套子查詢。這類查詢?cè)跊Q策支持系統(tǒng)(DSS)和在線分析處理系統(tǒng)(OLAP)中越來越重要。查詢變換是通常推薦的用于優(yōu)化此類子查詢的技術(shù)。子查詢是SQL的一種強(qiáng)大的組件,大大擴(kuò)

5、展了它的聲明性和表達(dá)能力。SQL標(biāo)準(zhǔn)允許子查詢被使用在SELECT,FROM,WHERE和HAVING子句中。決策支持系統(tǒng)的基準(zhǔn)測試TPC-H[文獻(xiàn)14]和TPC-DS[文獻(xiàn)15]大量使用了子查詢。TPC-H基準(zhǔn)測試的22個(gè)查詢中,差不多有一半用了子查詢。大部分是相關(guān)子查詢,很多都含有聚合函數(shù)。所以,高效地執(zhí)行復(fù)雜子查詢對(duì)數(shù)據(jù)庫至關(guān)重要。1.1ORACLE中的查詢變換Oracle執(zhí)行很多種的查詢變換——子查詢展開(譯者注:SubqueryUnnesting,指的是把ANY和EXISTS這類子查詢變成連接),分組和DISTINCT視圖的

6、合并(譯者注:group-byanddistinctviewmerging,指的是在帶有GROUPBY/DISTICNT的視圖/內(nèi)聯(lián)視圖中,先和外層的表進(jìn)行連接,過濾掉一些數(shù)據(jù)然后再做聚合操作),相同子表達(dá)式的消除(譯者注:common??sub-expressionelimination,指的是同樣的一個(gè)表達(dá)式出現(xiàn)多次,只需計(jì)算一次并多次引用計(jì)算結(jié)果),連接謂詞下推(譯者注:joinpredicatepushdown,指的是把外層的連接條件推入里層從而達(dá)到預(yù)先過濾的目的),連接因式分解(譯者注:joinfactorization,指

7、的是把UNION的兩個(gè)子查詢中的公共部分提取出來放到UNION之后做,類似提取公因式),集合操作INTERSECT和MINUS到連接/反連接的轉(zhuǎn)換,OR謂詞的擴(kuò)展(譯者注:ORexpansion,指的是把OR或者IN變成一系列UNIONALL),星型轉(zhuǎn)換(譯者注:startransformation,用于數(shù)據(jù)倉庫的事實(shí)表和維表連接,轉(zhuǎn)換為事實(shí)表的位圖索引的一系列BITAND運(yùn)算),分組和DISTINCT的置換(譯者注:group-byanddistinct??placement,指的是在有GROUPBY或DISTINCT,同時(shí)有WHE

8、RE連接條件,CBO先做分組聚合減少行數(shù)再做連接操作,和先前的group-byanddistinctviewmerging恰好相反)。Oracle中的查詢變換可能是試探式的或基于成本的。在基于成本的變換中,邏輯變換和物理

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。