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

綁定變量及其優(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條評論
主站蜘蛛池模板: 成人欧美精品一区二区不卡 | 中文字幕.com | 丁香色婷婷 | 99热久久久久久久免费观看 | 91精品国产色综合久久不 | 免费刺激性视频大片区 | 思思久久99热这里只有精品66 | 毛片免| 亚洲精品区一区二区三区四 | a毛片视频免费观看影院 | 国产成人丝袜网站在线看 | 黄色成人免费观看 | 久久99国产精品视频 | 精品日韩在线视频一区二区三区 | 大色综合色综合资源站 | 黄色天堂在线 | 日韩免费大片 | 99久久免费精品 | 伊人亚洲 | 国产成人aa视频在线观看 | 九九99久久精品在免费线bt | 久久精品免费一区二区视 | 久久月| 五月桃花网婷婷亚洲综合 | 国内精品一级毛片免费看 | 激情午夜婷婷 | 天天射天天添 | 欧美激情精品久久久久久久 | 久久精品中文字幕有码日本 | 国产一区免费在线观看 | 国产三级做爰高清视频a | 成人免费淫片在线费观看 | 国产精品欧美一区二区三区 | 狠狠色丁香婷婷综合小时婷婷 | 久久亚洲精品人成综合网 | 国产成人精品在线 | 欧美日韩亚洲国内综合网香蕉 | 99久久香蕉国产综合影院 | 国产操片| 美女网站视频免费 | 欧美 亚洲 激情 |