sql_trace的使用

zhangsharp20發表於2015-03-30
一、開啟sql_trace
會話級別
alter session set sql_trace=ture;
全域性級別
alter system set sql_trace=ture;

關閉sql_trace
會話級別
alter session set sql_trace=false;
全域性級別
alter system set sql_trace=false;


二、檢視路徑名,預設是在udump下。
11g可以透過v$diag_ino來檢視下一個生成的sql_trace檔案路徑名


10g可以透過v$mystat檢視來檢視當前的會話的SID,然後透過v$process和v$session檢視檢視當前的sql_trace路徑名
獲取當前SID
select sid from v$mystat where rownum =1
獲取SPID
select spid from v$session s ,v$process p where s.paddr=p.addr and s.sid=&sid;

spid即為trace檔案的字尾名

三、跟蹤一個已開啟的會話
使用DBMS_MONITOR包下的SESSION_TRACE_ENABLE函式,使用方法如下:

先要獲取到會話的SID和serial#
開啟跟蹤
EXECUTE DBMS_MONITOR.SESSION_TRACE_ENABLE(session_id => 27, serial_num => 60, waits => TRUE, binds => FALSE);
關閉跟蹤
EXECUTE DBMS_MONITOR.SESSION_TRACE_DISABLE(session_id => 27, serial_num => 60);

跟蹤當前會話可以使用dbms_session
開啟當前會話跟蹤
EXECUTE DBMS_SESSION.SESSION_TRACE_ENABLE(waits => TRUE, binds => FALSE);
關閉當前會話跟蹤
EXECUTE DBMS_SESSION.SESSION_TRACE_DISABLE();


四、使用tkprof工具解析生成的sql_trace檔案

tkprof 原路徑 新路徑

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

相關文章