亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

綁定變量及其優(yōu)缺點(diǎn)

系統(tǒng) 2044 0

??? 綁定變量是Oracle解決硬解析的首要利器,能解決OLTP系統(tǒng)中l(wèi)ibrary cache的過度耗用以提高性能。然刀子磨的太快,使起來鋒利,卻容
易折斷。凡事皆有利弊二性,因地制宜,因時(shí)制宜,全在如何權(quán)衡而已。本文講述了綁定變量的使用方法,以及綁定變量的優(yōu)缺點(diǎn)、使用場合。

?

一、綁定變量

??? 提到綁定變量,就不得不了解硬解析與軟解析。硬解析簡言之即一條SQL語句沒有被運(yùn)行過,處于首次運(yùn)行,則需要對其進(jìn)行語法分析,語
義識別,跟據(jù)統(tǒng)計(jì)信息生成最佳的執(zhí)行計(jì)劃,然后對其執(zhí)行。而軟解析呢,則是由于在library cache已經(jīng)存在與該SQL語句一致的SQL語句文本
、運(yùn)行環(huán)境,即有相同的父游標(biāo)與子游標(biāo),采用拿來主義,直接執(zhí)行即可。軟解析同樣經(jīng)歷語法分析,語義識別,且生成hash value ,接下來
在library cache搜索相同的hash value ,如存在在實(shí)施軟解析。有關(guān)更多的硬解析與軟解析以及父游標(biāo),子游標(biāo)請作如下參考:
???
??? 有關(guān)硬解析與軟解析,請參考: Oracle 硬解析與軟解析
??? 有關(guān)父游標(biāo)、子游標(biāo),請參考: 父游標(biāo)、子游標(biāo)與共享游標(biāo)
???
??? 綁定變量
????? 首先其實(shí)質(zhì)是變量,有些類似于我們經(jīng)常使用的替代變量,替代變量使用&占位符,只不過綁定變量使用:
????? 替代變量使用時(shí)為 &variable_para,相應(yīng)的綁定變量則為 :bind_variable_para
????? 通常一個(gè)SQL語句包含動態(tài)部分和靜態(tài)部分,占位符實(shí)質(zhì)是SQL語句中容易發(fā)生變化的部分,通常為其條件或取值范圍。動態(tài)部分在一般情
????? 況下(數(shù)據(jù)傾斜除外),對執(zhí)行計(jì)劃的生成的影響是微乎其微的。故同一SQL語句不同的動態(tài)部分產(chǎn)生的執(zhí)行計(jì)劃都是相同的。
???????
二、綁定變量的使用
??? 1、在SQLPlus中使用綁定變量

??? 2、PL/SQL塊中使用綁定變量

??? 3、在存儲過程或包中使用綁定變量

??? 4、在動態(tài)SQL中是使用綁定變量????

???????
三、綁定變量的優(yōu)缺點(diǎn)及使用場合
??? 優(yōu)點(diǎn):
??????? 可以在library cache中共享游標(biāo),避免硬解析以及與之相關(guān)的額外開銷
??????? 在大批量數(shù)據(jù)操作時(shí)將呈數(shù)量級來減少閂鎖的使用,避免閂鎖的競爭
?????
??? 缺點(diǎn):
??????? 綁定變量被使用時(shí),查詢優(yōu)化器會忽略其具體值,因此其預(yù)估的準(zhǔn)確性遠(yuǎn)不如使用字面量值真實(shí),尤其是在表存在數(shù)據(jù)傾斜(表上的數(shù)
??????? 據(jù)非均勻分布)的列上會提供錯(cuò)誤的執(zhí)行計(jì)劃。從而使得非高效的執(zhí)行計(jì)劃被使用。
???
??? 使用場合:
??????? OLTP
??????????? 在OLTP系統(tǒng)中SQL語句重復(fù)執(zhí)行頻度高,但處理的數(shù)據(jù)量較少,結(jié)果集也相對較小,尤其是使用表上的索引來縮小中間結(jié)果集,其
??????????? 解析時(shí)間通常會接近或高于執(zhí)行時(shí)間,因此該場合適合使用綁定變量。
???????
??????? OLAP
??????????? 在OLAP系統(tǒng)中,SQL語句執(zhí)行次數(shù)相對較少,但返回的數(shù)據(jù)量較大,因此多數(shù)情況下傾向于使用權(quán)標(biāo)掃描更高效,其SQL語句執(zhí)行時(shí)
??????????? 間遠(yuǎn)高于其解析時(shí)間,因此使用綁定變量對于總響應(yīng)時(shí)間影響不大。而且增加生成低效執(zhí)行計(jì)劃的風(fēng)險(xiǎn)。即在在OLAP系統(tǒng)中使用字
??????????? 面量的性能高于使用綁定變量。
???
??? 注意:
??????? 對于實(shí)際的數(shù)據(jù)庫對象,如(表,視圖,列等),不能使用綁定變量替換,只能替換字面量。如果對象名是在運(yùn)行時(shí)生成的,則需要對其
??????? 用字符串拼接,同時(shí),sql只會匹配已經(jīng)在共享池中相同的對象名。

?

四、相關(guān)參考

??? Oracle 硬解析與軟解析 ???
??? 父游標(biāo)、子游標(biāo)與共享游標(biāo)
??? 啟用用戶進(jìn)程跟蹤
??? PL/SQL --> 動態(tài)SQL
??? PL/SQL --> 動態(tài)SQL的常見錯(cuò)誤

綁定變量及其優(yōu)缺點(diǎn)


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

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

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

【本文對您有幫助就好】

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

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久久不卡一区二区三区 | 日韩欧美二区在线观看 | 日韩精品视频在线观看免费 | 奇米影视第四色首页 | 欧美日片 | 蜜桃综合| 亚洲国产欧美视频 | 国产成人精品区在线观看 | 亚洲九九视频 | www.国产.com | 极品精品国产超清自在线观看 | 五月婷婷婷婷婷 | 亚洲综合中文 | 欧美日韩中文视频 | 91久久国产视频 | 四虎高清成人永久免费影院 | 天天久久综合网站 | 99久久久国产精品免费播放器 | 久草久草视频 | 日本一级毛片视频在线看 | 午夜91视频| 国产a一级毛片午夜剧场14 | 国产久爱青草视频在线观看 | 国产精品久久久久久久久久日本 | 一区视频在线播放 | 国产不卡在线 | 性视频xxx | 亚洲精品国产福利一区二区三区 | 综合久久久久久久综合网 | 国产永久免费高清动作片www | 中文字幕在线观看一区二区 | 啪啪免费网站入口链接 | 亚洲精品久久一区影院 | 国产手机在线精品 | 亚洲综合精品香蕉久久网97 | 特级女人十八毛片a级 | 天天操女人 | 香蕉大黄香蕉在线观看 | 亚洲一区二区精品视频 | 黄色的视频免费看 | 在线观看人成网站深夜免费 |