日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Oracle 綁定變量窺探

系統(tǒng) 2179 0
? ??? Bind Peeking是Oracle 9i中引入的新特性,一直持續(xù)到Oracle 10g R2。它的作用就是在SQL語句硬分析的時候,查看一下當(dāng)前SQL謂詞的值
,以便生成最佳的執(zhí)行計劃。而在oracle 9i之前的版本中,Oracle 只根據(jù)統(tǒng)計信息來做出執(zhí)行計劃。

一、綁定變量窺探
??? 使用SQL首次運行時的值來生成執(zhí)行計劃。后續(xù)再次運行該SQL語句則使用首次執(zhí)行計劃來執(zhí)行。
??? 影響的版本:Oracle 9i, Oracle 10g
??? 對于綁定變量列中的特殊值或非均勻分布列上的綁定變量會造成非高效的執(zhí)行計劃被選擇并執(zhí)行。
???
??????? 要注意的是,Bind Peeking只發(fā)生在硬分析的時候,即SQL被第一次執(zhí)行的時候,之后的變量將不會在做peeking。我們可以看出,Bind
??? peeking并不能最終解決不同謂詞導(dǎo)致選擇不同執(zhí)行計劃的問題,它只能讓SQL第一次執(zhí)行的時候,執(zhí)行計劃選擇更加準(zhǔn)確,并不能幫助OLAP
??? 系統(tǒng)解決綁定變量導(dǎo)致執(zhí)行計劃選擇錯誤的問題。這也是OLAP不應(yīng)該使用綁定變量的一個原因。

??????? 更確切地說,綁定變量窺探是在SQL解析的物理階段,查詢優(yōu)化器將會窺探綁定變量的值并將其作為字面量來使用。即ORACLE首次解析
??? SQL時會將變量的真實值代入產(chǎn)生執(zhí)行計劃,后續(xù)對所有使用該綁定變量SQL語句都采用首次生存的執(zhí)行計劃。如此這般?那性能究竟如何?
??? 結(jié)果是并非最佳的執(zhí)行計劃的使用。此問題在Oracle 11g中得以解決。??
??????? 請參考: Oracle自適應(yīng)共享游標(biāo)

二、示例綁定變量窺探
??? 1、創(chuàng)建演示環(huán)境???????

??? 2、未使用綁定變量情形下SQL語句的執(zhí)行計劃???????

??? 3、使用綁定變量情形下的執(zhí)行計劃?????????????

三、總結(jié)
??? 從上面的演示可以,由于綁定變量窺探特性,對于后續(xù)生成的執(zhí)行計劃,不僅套用了首次生成的執(zhí)行計劃,而且執(zhí)行計劃中的Row,Bytes,
Cost(%CPU)等都與首次生存執(zhí)行計劃得值相同。由此可知,盡管可以使用綁定變量解決OLTP系統(tǒng)中大量重復(fù)SQL的反復(fù)解析的問題。但綁定變量
可能會導(dǎo)致SQL語句選擇非最佳的執(zhí)行計劃。尤其是對于存在數(shù)據(jù)傾斜的列,且生成了直方圖更不宜于使用綁定變量。在Oracle 11g 中,自適
應(yīng)特性從一定程度解決了綁定變量窺探所導(dǎo)致的問題。

四、延伸參考
??? Oracle自適應(yīng)共享游標(biāo)
??? 綁定變量及其優(yōu)缺點 ?

??? 父游標(biāo)、子游標(biāo)及共享游標(biāo) ?
??? dbms_xplan之display_cursor函數(shù)的使用 ?
??? dbms_xplan之display函數(shù)的使用 ?
??? 執(zhí)行計劃中各字段各模塊描述


???

Oracle 綁定變量窺探


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。。?/p>

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 德安县| 房山区| 明水县| 义马市| 台东县| 稷山县| 正镶白旗| 麦盖提县| 罗平县| 温泉县| 兴仁县| 寿阳县| 石河子市| 玛沁县| 池州市| 饶阳县| 遵义县| 泗阳县| 安康市| 尚义县| 大悟县| 黑水县| 吐鲁番市| 巴彦淖尔市| 古丈县| 固安县| 河北省| 巩义市| 玉树县| 石家庄市| 房产| 东至县| 隆尧县| 天柱县| 诸城市| 舒城县| 西畴县| 铜鼓县| 隆尧县| 双流县| 迁西县|