變量綁定 是指在sql語句的條件中使用變量而不是常量.比如shared pool里有兩條sql語句,
select * from tab1 where col1=1;
select * from tab1 where col1=2;
對oracle數(shù)據(jù)庫來說,這是兩條完全不同的SQL,對這兩條語句都需要進(jìn)行hard parse.因?yàn)閛racle會根據(jù)sql語句的文本去計(jì)算每個字符在內(nèi)存里的hash值,因此雖然上述兩條SQL只有一個字符不一樣,oracle根據(jù)hash算法在內(nèi)存中得到的hash地址就不一樣,所以oracle就會認(rèn)為這是兩條完全不同的語句.而如果將上述SQL改寫成select * from tab1 where col1=:var1;,然后通過對變量var1的賦值去查詢,那么oracle對這條語句第一次會進(jìn)行hard parse,以后就只進(jìn)行soft parse.假設(shè)某條語句被重復(fù)執(zhí)行了幾十萬次,那么使用bind var帶來的好處是巨大的.一個應(yīng)用程序如果bind var使用不充分,那么幾乎一定會伴隨著嚴(yán)重的性能問題.
綁定變量是相對文本變量來講的,所謂文本變量是指在SQL直接書寫查詢條件,這樣的SQL在不同條件下需要反復(fù)解析,綁定變量是指使用變量來代替直接書寫條件,查詢bind value在運(yùn)行時傳遞,然后綁定執(zhí)行.優(yōu)點(diǎn)是減少硬解析,降低CPU的爭用,節(jié)省shared_pool ;缺點(diǎn)是不能使用histogram,sql優(yōu)化比較困難
oracle中:=與=:的區(qū)別?
oracle中:=與=:的區(qū)別?
Oracle中:=是賦值語句,請問是不是有=:這種表現(xiàn)形式的呀?
Oracle中:=是賦值語句,請問是不是有=:這種表現(xiàn)形式的呀?
其他人氣:554 ℃時間:2020-05-30 21:13:01
優(yōu)質(zhì)解答
我來回答
類似推薦
- 求解一道很簡單的一元二次方程
- 散步 的閱讀答案
- 若函數(shù)f(x)=log a(2-x)在(1,2)上的值恒為負(fù)數(shù),則a的取值范圍是?
- Betty would buy a coat online_buy it in a shop.
- 小學(xué)六年級 數(shù)學(xué) 簡便運(yùn)算 請?jiān)敿?xì)解答,謝謝!(2 16:44:0)
- 下面大家和我一起用英語怎么寫
- 像哭笑不得這樣的詞有哪些
- 光明小學(xué)六1班有學(xué)生48人,其中女生比男生的5分之3多8人,六1班男、女生各多少人?
- 我們是屬鼠班讀后感
- 修路隊(duì)修一段路,第一天修了全長的42%,第二天比第一天少修80米,這時還剩下400米還沒修.這條路全長多少?
- 函數(shù)y=1/(1-x)的圖像與函數(shù)y=2sinx*派(-2
- 負(fù)荊請罪中,要是我跟廉將軍鬧翻了,后果將會怎么樣?是什么類型的問句?
猜你喜歡
- 1籠子里有免子和雞.共有108條腿,算免子多少?雞多少?
- 2零度經(jīng)線和緯線如何確定?
- 3若知B(-4.0)C(4.0)是三角形AB的兩個端點(diǎn),三角形ABC周長18.求頂點(diǎn).A的軌跡方程
- 4《齊王筑城》全文的翻譯,急
- 5Commission Decision官方翻譯是個什么組織
- 6I am poor in english.I can hardly make myself understood. 這個understood為啥不用原型?
- 730噸比[]噸少二分之一噸
- 8王先生月收入2500元,如果按國家規(guī)定超過1600圓的部分按5%要上交個人所得稅,王先生每個月的實(shí)際收入是多
- 9一個長方形周長68米,長比寬的3倍少2米,長和寬各是多少?
- 1016乘(16乘8分之7)=幾要過程
- 11幽的筆順
- 12文帝之后六年..文言文中周亞夫是一個什么樣的人