2014-12-19 Created By BaoXinjian
一、摘要
在做咨詢時,經查遇到以前SQL的運作情況,和查詢使用的條件
查詢綁定變量時,有硬解析和軟解析之分,如果是軟解析,變量的值就很難找到了
查詢綁定變量的幾個視圖如下:
查詢v$sql視圖
查詢v$sql_bind_capture
查詢dba_hist_sqlbind
查詢wrh$sqlstat
二、查詢v$sql視圖
1. 查詢bind_data
它的記錄頻率受_cursor_bind_capture_interval 隐含參數控制,預設值900,表示每900秒記錄一次綁定值,可以通過alter system set "_cursor_bind_capture_interval"=10;
2. bind_data
此時查詢到的data值得形式是這樣的:BEDA0B2002004F8482D10065FFFF0F000000003132303431313,需要通過dbms_sqltune.extract_binds進行轉換
三、查詢v$sql_bind_capture
通過v$sql_bind_capture視圖,可以檢視綁定變量,但是這個視圖不太給力,隻能捕獲最後一次記錄的綁定變量值。
而且兩次捕獲的間隔有一個隐含參數控制。預設是900秒,才會重新開始捕獲。在900内,綁定變量值的改變不會反應在這個視圖中。
10G以後可以通過如下方法檢視AWR報告裡記錄的SQL的綁定變量值。
四、查詢dba_hist_sqlbind
dba_hist_sqlbind視圖強大的地方在于,它記錄了每個AWR報告裡的SQL的綁定變量值,當然這個綁定變量值也是AWR生成的時候從v$sql_bind_capture采樣獲得的。
通過這個視圖,我們能夠獲得比較多的綁定變量值,對于我們排查問題,這些值一般足夠了。
還有一個需要注意的地方是,這兩個視圖中記錄的綁定變量隻對where條件後面的綁定進行捕獲,這點需要使用的時候注意。
查詢 dba_hist_sqlbind value_string列
dba_hist_sqlbind是視圖v$sql_bind_capture曆史快照
五、查詢wrh$sqlstat
兩外一個查詢綁定變量的視圖
Thanks and Regards
參考:aaaaaaaa2000 - http://blog.csdn.net/aaaaaaaa2000/article/details/7401110
<b>ERP技術讨論群: 288307890</b>
<b>技術交流,技術讨論,歡迎加入</b>
<b>Technology Blog Created By Oracle ERP - 鮑建立</b>