透過v$sql_bind_capture 檢視繫結變數。
最近在排查CRMG效能SQL的過程中,大量的SQL需要確定繫結變數的值,如果一個個聯絡開發確定,效率太低。還有一些技術手段比如10046,LOGMINER又複雜的要死。
大多數人都知道透過v$sql_bind_capture檢視,可以檢視繫結變數,但是這個檢視不太給力,只能捕獲最後一次記錄的繫結變數值。
而且兩次捕獲的間隔有一個隱含引數控制。預設是900秒,才會重新開始捕獲。在900內,繫結變數值的改變不會反應在這個檢視中。
10G以後可以透過如下方法檢視AWR報告裡記錄的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報告的快照ID。
----------name,繫結變數的名稱
----------position,繫結值在SQL語句中的位置,以1,2,3進行標註
---------value_string ,就是繫結變數值
---------,last_captured,最後捕獲到的時間
--------- WAS_CAPTURED,是否繫結被捕獲,where子句前面的繫結不進行捕獲。
dba_hist_sqlbind檢視強大的地方在於,它記錄了每個AWR報告裡的SQL的繫結變數值,當然這個繫結變數值也是AWR生成的時候從v$sql_bind_capture取樣獲得的。
透過這個檢視,我們能夠獲得比較多的繫結變數值,對於我們排查問題,這些值一般足夠了。
還有一個需要注意的地方是,這兩個檢視中記錄的繫結變數只對where條件後面的繫結進行捕獲,這點需要使用的時候注意。
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
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28211342/viewspace-2152791/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [20190506]檢視巢狀與繫結變數.txt巢狀變數
- 繫結變數窺視測試案例變數
- V$sql查詢未使用繫結變數的語句SQL變數
- 透過企業郵箱繫結GoDaddy域名Go
- 透過手機號查詢繫結QQ
- Win10系統下怎麼透過事件檢視器中檢視硬碟檢查結果Win10事件硬碟
- 透過 v$parameter 檢視看引數修改級別(11g, 18c, 19c)
- 在繫結變數下使用outline變數
- MySQL高階特性——繫結變數MySql變數
- [20180930]in list與繫結變數.txt變數
- [20180912]PLSLQ與繫結變數.txt變數
- Vue select 繫結動態變數Vue變數
- 透過v$wait_chains檢視診斷資料庫hang和ContentionAI資料庫
- [20180930]in list與繫結變數個數.txt變數
- [20210120]in list與繫結變數個數.txt變數
- 怎麼透過.htaccess配置二級域名繫結
- 【ORACLE】Oracle繫結變數知識梳理Oracle變數
- 4.2.10.3 檢視環境變數變數
- 向檢視傳遞變數變數
- oracle 11g 新特性之動態繫結變數窺視(一)Oracle變數
- oracle 11g 新特性之動態繫結變數窺視(二)Oracle變數
- v-on 繫結事件事件
- [20200326]繫結變數抓取與NULL值.txt變數Null
- 如何用FGA得到繫結變數的值變數
- 如何在對in操作使用變數繫結(轉)變數
- [20220414]toad與繫結變數peek.txt變數
- 如何在檢視中共享變數變數
- Laravel 透過遷移指令碼建立MySQL檢視Laravel指令碼MySql
- Linux 系統如何透過 netstat 命令檢視連線數判斷攻擊Linux
- [20231210]執行計劃與繫結變數.txt變數
- 用js寫一個繫結事件檢測視窗大小JS事件
- Java檢視變數資料型別Java變數資料型別
- Linux檢視環境變數當前資訊和檢視命令Linux變數
- [20191213]共享池繫結變數的值在哪裡.txt變數
- [20221103]繫結變數的分配長度11.txt變數
- [20221030]繫結變數的分配長度10.txt變數
- input,select, v-model 繫結的值為數字型別型別
- JavaScript變數型別檢測總結JavaScript變數型別