在診斷 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;