1.设置sql trace
(1)实例级
初始化参数据SQL_TRACE=TRUE
(2)对话级
ALTER SESSION SET SQL_TRACE=TRUE
DBMS_SESSION.SQL_TRACE(SQL_TRACE)
DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION(SID,SERIAL#,SQL_TRACE);
(3).trc文件存放的位置
查看初始化参数:用户跟踪文件user_dump_dest
2.设置时间统计(这样就可以统计每个sql执行的时间)
alter system set timed_statistics=true scope=both;
3.tkprof的使用
tkprof可对.trc文件进行分析,并生成一个分析文件.并且在分析.trc文件,生成分析文件时按各种选项进行排序,其中比较有用的一个排序选项是fchela,即按照elapsed time fetching来对分析的结果排序(记住要设置初始化参数time_statistics=true),生成的.prf文件将把最消耗时间的sql放在最前面显示。另外一个有用的参数就是sys,这个参数设置为no可以阻止所有以sys用户执行的sql被显示出来,这样可以减少分析出来的文件的复杂度,便于查看。
举例:
(1)设置跟踪SID,SERIAL#O为12.73
exec dbms_system.SET_SQL_TRACE_IN_SESSION(12,73,true);
(2)查询生成的.trc文件号
select spid from v$process where addr = (select paddr from v$session where sid=12);
(3)使用tkprof生成分析文件
c:\>tkprof e:\oracle\admin\rainny\rainny_ora_4188.trc c:\rainny.prf aggregate=yes sys=no sort=fchela(此例中将执行最耗时的sql放在分析文件的开头)
(4)打开.prf文件
可用ultraedit打开查看生成的分析文件 |
|