擷取Oracle SQL語句中綁定變數值的方法
在診斷SQL的效能問題時,我們有時候需要擷取其綁定變數的實際值,然後將此實際值帶入到SQL語句當中,用原來的SQL構成select語句(帶where條件),實際的執行一下,看一下選擇性如何。
本文就是說擷取其綁定變數值的方法。本文的編寫得到枯榮長老的協助,在此表示感謝。
本文適用於與Oracle 10G或者更高版本的db。
alter session set nls_date_format = 'yyyy-mm-dd,hh24:mi:ss';
set linesize 400
col sql_Id format a20
col name format a20
col datatype_string format a14
col value_string format a20
--這個sql從記憶體中讀取綁定變數值資訊,若是不在記憶體中,則使用下一個sql
select sql_id,name, datatype_string, last_captured,value_string from v$sql_bind_capture where sql_id='dxfcacn4t4ppw' order by LAST_CAPTURED,POSITION;
--這個sql從awr中讀取綁定變數值資訊
select instance_number, sql_id,name, datatype_string, last_captured,value_string from dba_hist_sqlbind where sql_id='fahv8x6ngrb50'order by LAST_CAPTURED,POSITION;
--------------------------------------------------------------------------------
Linux-6-64下安裝Oracle 12C筆記
在CentOS 6.4下安裝Oracle 11gR2(x64)
Oracle 11gR2 在VMWare虛擬機器中安裝步驟
Debian 下 安裝 Oracle 11g XE R2
--------------------------------------------------------------------------------