前提:
1)、必須確保timed_statistics為true,這個引數可以在會話級上進行修改。
2)、為了確保trace輸出能夠完整進行,還要調整此會話對trace檔案大小的限制,一般將此限制取消,即將max_dump_file_size設定為unlimited,或者設定為乙個很大的闕值。
1、跟蹤本會話:
set line 300;
set arraysize 1000;
select userenv('sid') from dual;
select p.spid, s.sid, s.serial#, p.inst_id from gv$process p, gv$session s where s.paddr = p.addr and s.sid = userenv('sid') and p.inst_id = s.inst_id;
set autotrace traceonly;
set timing on;
alter session set events '10046 trace name context forever ,level 12' ;
--alter session set events '10053 trace name context forever ,level 2' ;
執行sql或儲存過程
alter session set events '10046 trace name context off' ;
--alter session set events '10053 trace name context off' ;
sql> show parameter background_dump_dest
到該目錄找到生成的trc字尾的trace檔案。
tkprof tracfilename.trc tracfilename.txt (格式處理為易讀格式)
2、跟蹤其他指定會話:
----指定跟蹤session的spid(os process)
oradebug setospid 20336
oradebug unlimit
oradebug event 10046 trace name context forever,level 12
經過一段時間後關閉10046
oradebug event 10046 trace name context off;
exec dbms_system.set_ev(30,24167,10046,12,'');
找出程序的sid和serial,然後對他們設定10046事件:
sql> select sid,serial# from v$session where sid in (30,37);
sid serial#
---------- ----------
30 24167
37 2707
sql> exec dbms_system.set_ev(30,24167,10046,12,'');
sql> exec dbms_system.set_ev(37,2707,10046,12,'');
Oracle 10046跟蹤事件使用方法
1.開啟10046跟蹤事件 alter session set events 10046 trace name context forever,level 12 如果想更容易標識trace檔案,在開啟事件之前,可以先設定trace的標識 alter session set tracefile ide...
Oracle 詳解10053事件
借助oracle的10053事件event,我們可以監控到cbo對sql進行成本計算和路徑選擇的過程和方法。10053事件有兩個級別 level 2 2級是1級的乙個子集,它包含以下內容 column statistics single access paths join costs table j...
10046事件與tkprof命令
0 conn as sysdba 1 啟用10046 alter session set events 10046 trace name context forever,level 12 oradebug event 10046 trace name context forever,level 12...