日期:2014-05-16  浏览次数:20452 次

Oracle中的Trace文件

如果一个系统的执行效率比较低,一个比较好的方法是通过跟踪用户的会话并且使用tkprof工具使用排序功能格式化输出,从而找出有问题的SQL语句。
例如首先从os上利用top命令找到当前占用cpu资源最高的一个进程的PID号9999;
然后在数据库中根据PID号找到相应的sid和serial#
select s.sid,s.serial# from v$session s,v$process p where s.paddr=p.addr and p.spid='9999';
然后通过exec dbms_monitor.session_trace_enable(sid,serial#)开启trace;
最后利用tkprof察看trace输出。

开启Trace文件输出
可以通过以下方法开启Trace文件输出(需要ALTER SESSION系统权限):
1) alter session/system set sql_trace=true
2) exec dbms_monitor.session_trace_enable/dbms_monitor.database_trace_enable
3) alter session set events '10046 trace name context forever, level 12'