天天看點

Oracle 10 DBMS_MONITOR跟蹤和分析其它session SQL

1. session 資訊

檢視目前session資訊語句

select sid, serial#, username, machine

from v$session

where type != 'BACKGROUND'

and username = 'SYS';

-- session 1 ----

session_id = 146

serial# = 18

-- session 2 --

session_id = 140

serial# = 31

2.執行過程

1)-- session 1 ----

-- start trace --

EXECUTE DBMS_MONITOR.SESSION_TRACE_ENABLE(session_id=>140, serial_num=>31, waits=>TRUE, binds=>TRUE);

#############################

2)-- session 2 --

執行SQL語句

###########################

3)-- session 1 ----

select sql_trace, sql_trace_waits, sql_trace_binds

where sid = 140;

-- end trace --

EXECUTE DBMS_MONITOR.SESSION_TRACE_DISABLE(session_id=>140, serial_num=>31);

4)生成跟蹤檔案

跟蹤結束自動生成session 2 SPID跟蹤檔案oradb1_ora_3732.trc

3.檢視結果

1)檢視session的SID、SERIAL#,process的PID、SPID

SQL> select s.sid, s.serial#, p.pid, p.spid

 2  from v$session s, v$process p

 3  where s.paddr = p.addr

 4  and s.username = 'SYS';

      SID    SERIAL#        PID SPID

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

      140         31         16 3732

      146         18         17 4072

2)生成session 2 分析結果檔案

tkprof C:\oracle\product\10.2.0\admin\oradb1\udump\oradb1_ora_3732.trc 3732.txt

本文轉自 pgmia 51CTO部落格,原文連結:http://blog.51cto.com/heyiyi/1272680