![綁定變量的一些知識(shí)_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/27/b8c83cfb-2dfd-4555-ae94-22aa53b65148/b8c83cfb-2dfd-4555-ae94-22aa53b651481.gif)
![綁定變量的一些知識(shí)_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/27/b8c83cfb-2dfd-4555-ae94-22aa53b65148/b8c83cfb-2dfd-4555-ae94-22aa53b651482.gif)
![綁定變量的一些知識(shí)_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/27/b8c83cfb-2dfd-4555-ae94-22aa53b65148/b8c83cfb-2dfd-4555-ae94-22aa53b651483.gif)
![綁定變量的一些知識(shí)_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/27/b8c83cfb-2dfd-4555-ae94-22aa53b65148/b8c83cfb-2dfd-4555-ae94-22aa53b651484.gif)
![綁定變量的一些知識(shí)_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/27/b8c83cfb-2dfd-4555-ae94-22aa53b65148/b8c83cfb-2dfd-4555-ae94-22aa53b651485.gif)
下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、綁定變量的一些知識(shí)第一部分 術(shù)語(yǔ)第二部分 綁定類(lèi)型 手工綁定 JAVA PLSQL SQL 自動(dòng)綁定 cursor_sharing (不推薦)我們對(duì)相似的,只有某些數(shù)值變化的語(yǔ)句改寫(xiě)成完全相同的文本,稱其為綁定。因?yàn)镺RACLE數(shù)據(jù)庫(kù)設(shè)計(jì)特性之一就是不管何時(shí),只要可能,就盡量重用執(zhí)行計(jì)劃。例如:如果是SQL查詢,ORACLE首先通過(guò)HASH運(yùn)算到數(shù)據(jù)庫(kù)的共享池的相應(yīng)地址下去查找是否已經(jīng)有該語(yǔ)句的解析信息(包括執(zhí)行計(jì)劃,權(quán)限,用戶信息
2、等),如果發(fā)現(xiàn)了那個(gè)查詢,且那個(gè)查詢能重用(可共享),則可以準(zhǔn)備運(yùn)行。如果ORACLE沒(méi)有發(fā)現(xiàn)那個(gè)查詢,它就必須經(jīng)歷完全分析這個(gè)查詢、優(yōu)化此執(zhí)行計(jì)劃、進(jìn)行安全檢查等費(fèi)勁的過(guò)程(hard parse),這不僅消耗了大量的CPU(CPU的處理時(shí)間比執(zhí)行查詢本身多了很多倍),而且在相當(dāng)長(zhǎng)的時(shí)間內(nèi)鎖住了一部分庫(kù)緩存。等待關(guān)閉庫(kù)緩存的時(shí)間越長(zhǎng),系統(tǒng)慢慢趨于停止。我們?cè)谒阉鱈IBRARY CACHE時(shí)存在三種可能: 原先同樣的語(yǔ)句執(zhí)行過(guò),可以重用。 這個(gè)語(yǔ)句曾經(jīng)的解析,但信息被擠出了共享池。需要reload 這個(gè)語(yǔ)句是第一次運(yùn)行,那么就需要完全解析該語(yǔ)句。硬解析對(duì)于相似的語(yǔ)句,我們?nèi)绻軌蛑赜迷?/p>
3、共享池中以前生成的解析,將會(huì)減少重新解析過(guò)程所花的時(shí)間及共享池的LATCH的競(jìng)爭(zhēng),這就是我們一直提到的綁定這個(gè)概念。采用綁定的方式將原來(lái)在變化的常量改寫(xiě)成不變的綁定變量名,實(shí)現(xiàn)完全相同的語(yǔ)句。比如相似的語(yǔ)句只有數(shù)字常量部分是不同的,我們?nèi)绻押竺娴某A刻鎿Q成一個(gè)變量前面常量1和2被一個(gè)相同的綁定變量名:b代替,那么這兩個(gè)語(yǔ)句的字符就完全相同了。所以經(jīng)過(guò)HASH運(yùn)算后得到的共享池地址也肯定相同,常見(jiàn)的應(yīng)用環(huán)境下如何綁定呢?手工綁定 (應(yīng)用級(jí)別) JAVA雖然這里我們用?問(wèn)號(hào)綁定了三個(gè)參數(shù),但是由于每次調(diào)用都要執(zhí)行conn.prepareCall等,會(huì)造成重復(fù)構(gòu)造元數(shù)據(jù)。(不推薦上圖寫(xiě)法)正確寫(xiě)法
4、: PLSQLv_sal是綁定變量,而ORACLE接受的SQL串永遠(yuǎn)是用new_sal。這里我們共享了相同的游標(biāo),但還不是最佳。因?yàn)檫@種語(yǔ)句只能解決軟解析的功能,不能解決軟軟解析的功能,還有更優(yōu)化的session_cached_cursor 未綁定EXECUTE IMMEDIATE'UPDATE emp SET sal '|new_sal; 系統(tǒng)綁定(cursor_sharing=FORCESIMILAR)在10G前,這兩個(gè)參數(shù)還不成熟,容易產(chǎn)生BUG10G比較穩(wěn)定,但是也不建議冒險(xiǎn)使用。用戶發(fā)送SQL語(yǔ)句后的LIBRARY參與
5、的步驟如下(解析詳細(xì)步驟): 語(yǔ)法檢查階段1 對(duì)SQL語(yǔ)句進(jìn)行語(yǔ)法檢查,看是否有語(yǔ)法錯(cuò)誤2 到數(shù)據(jù)字典里校驗(yàn)SQL語(yǔ)句涉及的對(duì)象和列是否都存在3 將對(duì)象進(jìn)行名稱轉(zhuǎn)換:比如將同名詞翻譯成實(shí)際的對(duì)象4 檢查游標(biāo)里用戶是否具有訪問(wèn)SQL語(yǔ)句里所引用的對(duì)象的權(quán)限 解析階段5 對(duì)SQL文本進(jìn)行HASH運(yùn)算6. 如果文本完全匹配,則需要檢查對(duì)象相關(guān)性 因?yàn)橛锌赡躍QL對(duì)象與LIBRARY CACHE的同名對(duì)象屬于不同的OWNER,如果程序使用了很多用戶,則盡量使用在對(duì)象前加OWNER前綴,來(lái)減少匹配對(duì)象相關(guān)性7. 即使對(duì)象匹配,綁定文本也一樣了,也不能確保做軟解析 有下面幾個(gè)因素會(huì)造成不能軟解析 綁定名不一樣 綁定數(shù)據(jù)類(lèi)型和綁定變量長(zhǎng)度不一樣8. 語(yǔ)言、優(yōu)化、排序環(huán)境不一樣9. 通過(guò)優(yōu)化器創(chuàng)建一個(gè)最優(yōu)的執(zhí)行計(jì)劃10. 將該游標(biāo)所產(chǎn)生的執(zhí)行計(jì)劃、SQL文本等裝載進(jìn)library cache的若干個(gè)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 科技發(fā)展與學(xué)科教育的互促關(guān)系研究
- 科技教育編程教育的普及與推廣
- DB4453T 30-2025廣藿香組培苗生產(chǎn)技術(shù)規(guī)程
- DB35T 2232-2024海峽兩岸共通 火龍果生產(chǎn)技術(shù)規(guī)程
- 東莞企業(yè)勞動(dòng)合同范本
- 個(gè)人貸款房屋抵押合同模板大全
- 業(yè)務(wù)經(jīng)營(yíng)權(quán)轉(zhuǎn)讓合同
- 個(gè)人車(chē)位共有權(quán)買(mǎi)賣(mài)合同
- 臨時(shí)倉(cāng)儲(chǔ)合同范本
- 兩人股權(quán)轉(zhuǎn)讓合同范本
- IEC-62368-1-差異分享解讀
- 如何當(dāng)好學(xué)校的中層干部
- SWITCH塞爾達(dá)傳說(shuō)曠野之息-1.6金手指127項(xiàng)修改使用說(shuō)明教程
- 2022-2023學(xué)年廣東省佛山市順德區(qū)高三(下)模擬英語(yǔ)試卷
- 節(jié)后復(fù)工培訓(xùn)內(nèi)容五篇
- GB/T 33322-2016橡膠增塑劑芳香基礦物油
- GA 1051-2013槍支彈藥專用保險(xiǎn)柜
- 某水毀公路維修工程施工方案
- 家庭病房工作制度和人員職責(zé)
- 建設(shè)工程監(jiān)理合同示范文本GF-2018-0202
- 2022質(zhì)檢年終工作總結(jié)5篇
評(píng)論
0/150
提交評(píng)論