首页 > 数据库 > Oracle > oracle 10046事件跟踪
1 sql_trace 用法
alter session set sql_trace=true;
execute sql_1
alter session set sql_trace=false;
select value from v$diag_info where name='Default Trace File';
以上对当前用户执行跟踪
2 如果是其他用户,使用dbms_system.set_sql_trace_in_session
例如:
select sid,serial#,username from v$session where username='LONG';
sid seriral# username
8 2041 LONG
exec dbms_system.set_SQL_trace_in_session(8,2041,trace);
exec dbms_system.set_SQL_trace_in_session(8,2041false);
还可以按照sql_id 进行跟踪
alter system set events ‘SQL_trace [SQL:&&SQL_id] bind=true,wait=true';
exec dbms_system.set_SQL_trace_in_session(8,2041,trace);
3 10046 事件
alter session set events '10046 trace name context forever,level 12' --启用跟踪
execute sql
alter session set events '10046 trace name context off' --停止跟踪
对其他用户事件跟踪,可以使用dbms_system的set_ev过程实现
执行跟踪 -- 9,437 sid,serial#
exec dbms_system.set_ev(9,437,10046,8,'');
结束跟踪
exec dbms_system.set_ev(9,437,10046,0,'')
对跟踪文件使用tkprof 工具格式化查看
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25846553/viewspace-3098282/ ,如需转载,请注明出处,否则将追究法律责任。