使用10046 event 跟踪 .
在数据库级别上设置TIMED_STATISTICS为True。
使用10046 event的方法大致如下(当前session):
alter session set events '10046 trace name context forever, level 12';
your sql statement...
alter session set events '10046 trace name context off';
其中的level有1,4,8,12几个选项,其中1相当于设置SQL_TRACE=TRUE之后
的结果,4包括1的结果和绑定变量的实际值,8包括1的结果和等待事件的情况,
12则同时包含1的结果,绑定变量的实际值和等待事件情况,所以可以说level 12
是最为详细的trace了。
备注:
10046事件是oracle提供的内部事件,是对sql_trace的增强,可以设置以下4个级别:
Level 1:启用标准的sql_trace功能,等价于sql_trace
Level 4:等价于Level 1+绑定值
Level 8: 等价于Level 1+等待事件跟踪
Level 12: 等价于Level 1+level 4 + level 8
使用10046 event 跟踪其他用户session :
对其他用户session设置 dbms_system.set_ev
说明:5个参数 sid/serial#/ev/level/username
Select sid,serial# from v$session where username is not null ;
SID SERIAL#
---------- ---------- -----
113 227
或者通过spid查询sid, serial# :
SQL> select b.*, a.* from v$process a, v$session b
where a.addr = b.paddr and a.spid in (1914, 19140) ;
执行跟踪:
exec dbms_system.set_ev(113,227,10046,8,'');
结束跟踪:
exec dbms_system.set_ev(113,227,10046,0,'');
EBS 中如何进行trace
参考 FAQ: Common Tracing Techniques in Oracle E-Business Applications 11i and R12 (文档 ID 296559.1)
本文转自ITPUB博客tolywang的博客,原文链接:10046 trace 及EBS如何进行trace debug [final],如需转载请自行联系原博主。