真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

ORACLE中的查詢轉(zhuǎn)換有哪些

本篇內(nèi)容主要講解“ORACLE中的查詢轉(zhuǎn)換有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“ORACLE中的查詢轉(zhuǎn)換有哪些”吧!

創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的海寧網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

一、子查詢展開(subquery unnesting)

子查詢展開分兩種:

1、要么將子查詢中的表或視圖拆開來跟外面的表做連接,

2、要么不拆開子查詢,而是當(dāng)作一個內(nèi)嵌視圖與外面的表做連接

不是所有子查詢都會做子查詢展開,子查詢展開的條件

1、子查詢展開后的SQL跟原SQL一定要完全等價

2、對于子查詢不拆開,而是當(dāng)作一個內(nèi)嵌視圖的子查詢展開,改寫后的SQL成本之要小于原SQL才行

子查詢前的where條件是下列條件之一,那么滿足一定條件就會做子查詢展開

single-row(即=,<,>,>=,<=,<>)

exists

not exists

in

not in

any

all

二、視圖合并(view merging)

把視圖不在當(dāng)作一個獨立的處理單元,而是將其拆開,把構(gòu)成視圖的基表拿出來跟外部查詢中的表進行連接,分三種

1、簡單視圖合并(simple view merging)

指不含外連接,以及所帶視圖的視圖定義中不含distinct ,group by 等聚合函數(shù)的目標(biāo)SQL的合并,另外不能出現(xiàn)以下

集合運算符(union ,union all,minus,intersect)

connect by 子句

rownum

2、外連接視圖合并(outer join view merging)

外部查詢的表與視圖之間使用了外連接,或者視圖的定義SQL中使用了外連接,以及所帶視圖的視圖定義中不含distinct ,group by 等聚合函數(shù)的目標(biāo)SQL的合并

有個簡單的前提,要么該視圖做為外連接的驅(qū)動表,如果作為被驅(qū)動表,則該視圖的sql定義中只能有一張表

3、復(fù)雜視圖合并(complex view merging)

所帶視圖的視圖定義中含有distinct ,group by 等聚合函數(shù)的目標(biāo)SQL的合并

復(fù)雜視圖合并會把sql拆分,先把基表跟外部表連接后在做distinct ,group by,所有復(fù)雜視圖合并不一定會帶來成本值的減少,oracle會比較合并后的SQL,只有當(dāng)合并后SQL的成本值低于原SQL成本值,才會做復(fù)雜視圖合并

兩個隱含參數(shù) 

通過查詢轉(zhuǎn)換前后的成本值來決定是否轉(zhuǎn)換,參數(shù)_optimizer_cost_based_transformation可以在session和system級別修改,默認值'linear',默認通過成本值比較來轉(zhuǎn)換sql,改為‘OFF',則不管成本值都會進行復(fù)雜視圖合并。

_complex_view_merging,默認為true,允許復(fù)雜視圖合并,改為false,關(guān)閉復(fù)雜視圖合并

三、星型轉(zhuǎn)換

star_transformation_enabled 

默認為false ,需要啟用則設(shè)置為true,也可以設(shè)置為temp_disable(不建臨時表)

四、連接謂詞推入

優(yōu)化處理帶視圖的SQL

僅支持以下類型

視圖定義中含有union all/union

視圖定義中含有distinct

視圖定義中含有g(shù)roup by

于外部查詢的連接時外連接

與外部查詢的連接時半連接

與外部查詢的連接時反連接

五、連接因式分解

優(yōu)化器處理帶union all 的SQL時的一種優(yōu)化方式

11gr2中才有

六、表擴展(table expansion)

優(yōu)化器處理分區(qū)表的一種優(yōu)化方式

11gr2才有

hint 兩個 no_expand_table ,expand_table

七、表移除(table elimination)

10gr2中已有,適合表與表之間通過外鍵連接,或者表與表之間是外連接的情況

到此,相信大家對“ORACLE中的查詢轉(zhuǎn)換有哪些”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!


標(biāo)題名稱:ORACLE中的查詢轉(zhuǎn)換有哪些
URL標(biāo)題:http://weahome.cn/article/jpggos.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部