如何獲取繫結變數
oracle 在10g 時 可以捕獲繫結變數並且存到AWR中,但是有諸多不便:
Captured periodically(_cursor_bind_capture_interval), not at real time.
Captured under maximum size(_cursor_bind_capture_area_size)
Only bind variables in WHERE clause are captured
做如下實驗來演示如何獲取 繫結變數。
sys@ORACL> var bid number;
sys@ORACL> var eid number;
sys@ORACL> exec :bid :=dbms_workload_repository.create_snapshot;
PL/SQL 過程已成功完成。
sys@ORACL> var b1 number;
sys@ORACL> var b2 number;
sys@ORACL> var b3 varchar2(1);
sys@ORACL> begin
2 :b1 :=1;
3 :b2 :=2000;
4 :b3 :='s';
5 end;
6 /
PL/SQL 過程已成功完成。
sys@ORACL> update yang.t set object_name= :b3 where object_id between :b1 and :b2;
已更新119680行。
sys@ORACL> commit;
提交完成。
sys@ORACL> exec :eid :=dbms_workload_repository.create_snapshot;
PL/SQL 過程已成功完成。
sys@ORACL> var sqlid varchar2(100);
sys@ORACL> begin
2 select sql_id into :sqlid
3 from dba_hist_sqltext
4 where sql_text like 'update yang.t%';
5 end;
6 /
PL/SQL 過程已成功完成。
sys@ORACL> print sqlid;
SQLID
--------------------
1bgn2wm9nad9j
sys@ORACL> col name for a10
sys@ORACL> col postion for a99
sys@ORACL> col value_string for a20
sys@ORACL> select snap_id,name,position,value_string,last_captured
2 from dba_hist_sqlbind
3 where sql_id=:sqlid
4 order by snap_id desc;
SNAP_ID NAME POSITION VALUE_STRING LAST_CAPTURED
---------- ---------- ---------- -------------------- --------------
105 :B3 1
105 :B2 3 2000 10-3月 -11
105 :B1 2 1 10-3月 -11
Captured periodically(_cursor_bind_capture_interval), not at real time.
Captured under maximum size(_cursor_bind_capture_area_size)
Only bind variables in WHERE clause are captured
做如下實驗來演示如何獲取 繫結變數。
sys@ORACL> var bid number;
sys@ORACL> var eid number;
sys@ORACL> exec :bid :=dbms_workload_repository.create_snapshot;
PL/SQL 過程已成功完成。
sys@ORACL> var b1 number;
sys@ORACL> var b2 number;
sys@ORACL> var b3 varchar2(1);
sys@ORACL> begin
2 :b1 :=1;
3 :b2 :=2000;
4 :b3 :='s';
5 end;
6 /
PL/SQL 過程已成功完成。
sys@ORACL> update yang.t set object_name= :b3 where object_id between :b1 and :b2;
已更新119680行。
sys@ORACL> commit;
提交完成。
sys@ORACL> exec :eid :=dbms_workload_repository.create_snapshot;
PL/SQL 過程已成功完成。
sys@ORACL> var sqlid varchar2(100);
sys@ORACL> begin
2 select sql_id into :sqlid
3 from dba_hist_sqltext
4 where sql_text like 'update yang.t%';
5 end;
6 /
PL/SQL 過程已成功完成。
sys@ORACL> print sqlid;
SQLID
--------------------
1bgn2wm9nad9j
sys@ORACL> col name for a10
sys@ORACL> col postion for a99
sys@ORACL> col value_string for a20
sys@ORACL> select snap_id,name,position,value_string,last_captured
2 from dba_hist_sqlbind
3 where sql_id=:sqlid
4 order by snap_id desc;
SNAP_ID NAME POSITION VALUE_STRING LAST_CAPTURED
---------- ---------- ---------- -------------------- --------------
105 :B3 1
105 :B2 3 2000 10-3月 -11
105 :B1 2 1 10-3月 -11
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22664653/viewspace-689029/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 如何獲取繫結變數值變數
- ORACLE 獲取繫結變數值Oracle變數
- 獲取sql繫結變數的值SQL變數
- Oracle獲取繫結變數的各種方法Oracle變數
- v$sql_bind_capture 獲取繫結變數SQLAPT變數
- v$sql_bind_capture 獲取繫結變數資訊SQLAPT變數
- oracle資料庫獲取繫結變數的各種方法Oracle資料庫變數
- 繫結變數變數
- 繫結變數之繫結變數窺探(Bind Peeking)變數
- 如何獲取變數token的值變數
- 如何獲取變數 token 的值變數
- Oracle 繫結變數Oracle變數
- 如何在對in操作使用變數繫結(轉)變數
- 如何用FGA得到繫結變數的值變數
- 如何得到繫結變數的輸入值變數
- 檢視繫結變數變數
- 繫結變數窺測變數
- PLSQL使用繫結變數SQL變數
- Oracle之繫結變數Oracle變數
- 關於繫結變數變數
- 【EVENT】使用10046事件獲取SQL語句中繫結變數的具體值事件SQL變數
- 【優化】使用繫結變數 OR 不使用繫結變數,這不是問題!優化變數
- ORACLE 繫結變數用法總結Oracle變數
- 轉貼_使用10046事件獲取SQL語句中繫結變數的具體值事件SQL變數
- 【最佳化】使用繫結變數 OR 不使用繫結變數,這不是問題!變數
- 繫結變數窺測的演變變數
- Oracle 變數繫結與變數窺視合集Oracle變數
- 繫結變數的測試變數
- Oracle 繫結變數窺探Oracle變數
- oracle 繫結變數(bind variable)Oracle變數
- Oracle 繫結變數 詳解Oracle變數
- 繫結變數引數關閉之後,oracle會如何操作變數Oracle
- 關於繫結變數的SQL繫結什麼值變數SQL
- 利用FORCE_MATCHING_SIGNATURE捕獲非繫結變數SQL變數SQL
- MySQL高階特性——繫結變數MySql變數
- SQL Developer中使用繫結變數SQLDeveloper變數
- 繫結變數之基本概念變數
- 繫結變數及其優缺點變數