Oracle Trace 及TKPROF

tolywang發表於2012-06-22
alter session set timed_statistics=true;
alter session set events '10046 trace name context forever, level 12';
-- execute your SQL .
alter session set events ‘10046 trace name context off‘

另外一種方式捕捉其他session的操作:
舉例如下:
 A.獲得sid, serial#的資訊
 > select sid, serial# from v$session; 
 B.開啟
 > execute dbms_system.set_ev(543,1306,10046,12,'');
 C.關閉
 > execute dbms_system.set_ev(543,1306,10046,0,'');
 
快速獲取trace file .
在同一個連線中:
SELECT    a.VALUE || b.symbol || c.instance_name || '_ora_' || d.spid || '.trc' trace_file
  FROM (SELECT VALUE FROM v$parameter WHERE NAME = 'user_dump_dest') a,
       (SELECT SUBSTR (VALUE, -6, 1) symbol FROM v$parameter
         WHERE NAME = 'user_dump_dest') b,
       (SELECT instance_name FROM v$instance) c,
       (SELECT spid FROM v$session s, v$process p, v$mystat m
         WHERE s.paddr = p.addr AND s.SID = m.SID AND m.statistic# = 0) d ; 

在Oracle11g中在v$processes中新增加了tracefile欄位,
select  tracefile, traceid   from v$process where 
addr  in  ( select  paddr   from  v$session  where  status = 'ACTIVE' 
and schemaname='APPS'  and  logon_time>=sysdate-1)  ;
 
將trace檔案格式化為易讀txt檔案方法: 
tkprof  xxx.trc  xxx.txt  explain=apps/poi123 sort='(prsela,exeela,fchela)'
可以寫成一個指令碼 tkprof_gen.sh
tkprof  $1  $2   explain=apps/poi123 sort='(prsela,exeela,fchela)'
執行時,執行 tkprof_gen.sh  xxx.trc  xxx.txt  即可。

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

相關文章