Oracle SQL 跟蹤 --- dbms_system.set_sql_trace_in_session

tolywang發表於2007-06-28
在很多時候我們需要跟蹤其他使用者的程式,而不是當前使用者,這可以透過Oracle提供的系統包DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION來完成


例子:

exec sys.dbms_system.set_sql_trace_in_session(10 , 39196 , true);
exec sys.dbms_system.set_sql_trace_in_session(10 , 39196 , false);

SET_SQL_TRACE_IN_SESSION過程式要提供三個引數:

SQL> desc DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION;

Parameter Type Mode Default?

--------- ------- ---- --------

SID NUMBER IN

SERIAL# NUMBER IN

SQL_TRACE BOOLEAN IN

透過v$session我們可以獲得sidserial#等資訊:

獲得程式資訊,選擇需要跟蹤的程式:

SQL> select sid,serial#,username from v$session

2 where username is not null;

SID SERIAL# USERNAME

---------- ---------- ------------------------------

8 2041 SYS

9 437 EYGLE

設定跟著:

SQL> exec dbms_system.set_SQL_TRACE_in_session(9,437,true)

PL/SQL procedure successfully completed.

.

可以等候片刻,跟蹤session執行任務,捕獲sql操作…

.

停止跟蹤:

SQL> exec dbms_system.set_SQL_TRACE_in_session(9,437,false)

PL/SQL procedure successfully completed.

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-84720/,如需轉載,請註明出處,否則將追究法律責任。

相關文章