1.DBMS_SYSTEM包
[sourcecode language=”sql” light=”true”]EXECUTE dbms_system.set_sql_trace_in_session (sid,serial,TRUE);[/sourcecode]
这样的trace相当于event 10046 level 1。
停止:EXECUTE dbms_system.set_sql_trace_in_session (sid,serial,FALSE);
[sourcecode language=”sql” light=”true”]EXECUTE dbms_system.set_ev (sid,serial,10046,12,”);[/sourcecode]
这样直接设置某个会话的10046 event level 12,相当于level 4+level 8,也就是binds和waits都记录下来。
停止:EXECUTE dbms_system.set_ev (sid,serial,10046,0,”);
2. DBMS_SUPPORT包
[sourcecode language=”sql” light=”true”]EXECUTE dbms_support.start_trace_in_session (sid,serial,binds=>true,waits=>true);[/sourcecode]
这样的trace相当于event 10046 level 12。
停止:dbms_support.stop_trace_in_session(sid,serial);
备注:dbms_support包默认不存在,需要执行下述SQL来安装。
$ORACLE_HOME/rdbms/admin/dbmssupp.sql
3. 在Oracle10g以后可以使用DBMS_MONITOR包
[sourcecode language=”sql” light=”true”]EXECUTE DBMS_MONITOR.SESSION_TRACE_ENABLE(sid,serial, binds=>true,waits=>true);[/sourcecode]
这样的trace相当于event 10046 level 12。
停止:EXECUTE DBMS_MONITOR.SESSION_TRACE_DISABLE(sid,serial);