1.開啟10046跟蹤事件
alter session set events '10046 trace name context forever, level 12';
如果想更容易標識trace文件,在開啟事件之前,可以先設置trace的標識
alter session set tracefile_identifier='ybb';
這樣完成后,trace文件名稱就會加上ybb
2.執行要跟蹤的sql語句(對應的trace文件中有SQL的執行情況)
select * from dba_users where username='SCOTT';
3.停止10046事件跟蹤
alter session set events '10046 trace name context off';
4.定位此次生成的trace文件
select distinct(m.sid),p.pid,p.tracefile from v$mystat m,v$session s,v$process p where m.sid=s.sid and s.paddr=p.addr;
5.用tkprof工具格式化文件輸出
10046事件是SQL_TRACE的擴展,有效的跟蹤級別有:
level 0:SQL_TRACE=FASLE
level 1:跟蹤sql語句,包括解析、執行、提取、提交和回滾等。
level 4:1級+綁定變量
level 8:4級+等待事件
level 12:4級+8級
其中,level 1相當於打開了sql_trace
session級別開啟/關閉10046 trace追蹤
alter session set evnets '10046 trace name context forever,level 12'; alter session set events '10046 trace name context forever off';
system級別開啟/關閉10046 trace追蹤
alter system set events '10046 trace name context forever,level 12'; alter system set events '10046 trace name context forever off';
也可以進行全局設置,在參數文件(pfile/spfile)中增加以下:
Event=”10046 trace name context forever,level 12”