日期:2014-05-16 浏览次数:20460 次
sql_trace/10046事件是oracle提供的用于进行sql跟踪的手段,其内容包括sql的解析过程、sql的执行计划、绑定变量的使用、会话发生的等待事件。
在使用sql_trace/10046事件前,有两个参数需要注意:
sys@ORCL> show parameter max_dump_file_size --对trace文件的大小限制 NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ max_dump_file_size string UNLIMITED sys@ORCL> show parameter timed_statistics --对重要信息的收集 NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ timed_statistics boolean TRUE
sql_trace的作用域:
1)对所有用户:
i)在参数文件中指定sql_trace=true
ii)alter system set sql_trace=true/false
2) 对当前用户:
启用当前session的跟踪:alter session set sql_trace=true;
结束跟踪:alter session set sql_trace=false;
3)对其他用户:
选择跟踪的进程(用户)
sys@ORCL> select sid,serial#,username from v$session where username is not null; SID SERIAL# USERNAME ---------- ---------- ------------------------------ 142 14 HR 159 5 SYS
设置跟踪:
sys@ORCL> exec dbms_system.set_sql_trace_in_session(142,14,true) PL/SQL procedure successfully completed.
停止跟踪:
sys@ORCL> exec dbms_system.set_sql_trace_in_session(142,14,false) PL/SQL procedure successfully completed.
*************************************↖(^ω^)↗**********************************
10046事件是对sql_trace的增强,可分4个级别,具体如下:
1)level 1:等价于sql_trace
2)level 4:level 1+绑定值
3)level 8:level 1+等待事件跟踪
4)level 12:等价于level 1+level 4+level 8
10046事件的作用域:
1)对所有用户
i)在参数文件中修改:event=“10046 trace name context forever,level 12”
ii)alter system set events ‘10046 trace name context forever,level 8';
/ alter system set events '10046 trace name context off';
2)对当