這篇文章將為大家詳細(xì)講解有關(guān)sql中如何通過v$sql_bind_capture查看綁定變量,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
十余年的麟游網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。全網(wǎng)營銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整麟游建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)從事“麟游網(wǎng)站設(shè)計(jì)”,“麟游網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
最近在排查CRMG性能SQL的過程中,大量的SQL需要確定綁定變量的值,如果一個(gè)個(gè)聯(lián)系開發(fā)確定,效率太低。還有一些技術(shù)手段比如10046,LOGMINER又復(fù)雜的要死。
大多數(shù)人都知道通過v$sql_bind_capture視圖,可以查看綁定變量,但是這個(gè)視圖不太給力,只能捕獲最后一次記錄的綁定變量值。
而且兩次捕獲的間隔有一個(gè)隱含參數(shù)控制。默認(rèn)是900秒,才會(huì)重新開始捕獲。在900內(nèi),綁定變量值的改變不會(huì)反應(yīng)在這個(gè)視圖中。
10G以后可以通過如下方法查看AWR報(bào)告里記錄的SQL的綁定變量值。
select snap_id, name, position, value_string,last_captured,WAS_CAPTURED from dba_hist_sqlbind where sql_id = '576c1s91gua19' and snap_id='20433';
----------SNAP_ID就是AWR報(bào)告的快照ID。
----------name,綁定變量的名稱
----------position,綁定值在SQL語句中的位置,以1,2,3進(jìn)行標(biāo)注
---------value_string,就是綁定變量值
---------,last_captured,最后捕獲到的時(shí)間
--------- WAS_CAPTURED,是否綁定被捕獲,where子句前面的綁定不進(jìn)行捕獲。
dba_hist_sqlbind視圖強(qiáng)大的地方在于,它記錄了每個(gè)AWR報(bào)告里的SQL的綁定變量值,當(dāng)然這個(gè)綁定變量值也是AWR生成的時(shí)候從v$sql_bind_capture采樣獲得的。
通過這個(gè)視圖,我們能夠獲得比較多的綁定變量值,對(duì)于我們排查問題,這些值一般足夠了。
還有一個(gè)需要注意的地方是,這兩個(gè)視圖中記錄的綁定變量只對(duì)where條件后面的綁定進(jìn)行捕獲,這點(diǎn)需要使用的時(shí)候注意。
sys@CRMG>SELECT x.ksppinm NAME, y.ksppstvl VALUE, x.ksppdesc describ
2 FROM SYS.x$ksppi x, SYS.x$ksppcv y
3 WHERE x.inst_id = USERENV ('Instance')
4 AND y.inst_id = USERENV ('Instance')
5 AND x.indx = y.indx
6 AND x.ksppinm LIKE '%&par%'
7 /
Enter value for par: bind_ca
old 6: AND x.ksppinm LIKE '%&par%'
new 6: AND x.ksppinm LIKE '%bind_ca%'
NAME VALUE DESCRIB
------------------------------ -------------------- ------------------------------------------------------------
_cursor_bind_capture_area_size 400 maximum size of the cursor bind capture area
_cursor_bind_capture_interval 900 interval (in seconds) between two bind capture for a cursor
關(guān)于“sql中如何通過v$sql_bind_capture查看綁定變量”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。