为了使用tkprof工具,必须启用SQL TRACE功能。修改SPFILE参数sql_trace=true,重启实例,可以开启整个数据库SQL TRACE功能。然而我们一般只需要对某个SESSION跟踪,如下所示:
alter session set sql_trace=true;
sys.dbms_system.set_sql_trace_in_session(session's id,serial number, true)
为了得到登录用户的SID和S
select s.username, s.sid, s.serial#, s.program
from v$session s,v$process p
where s.paddr=p.addr and p.background is null
SQL TRACE日志会保存到user_dump_dest指定的目录中,
任何报告如果没有时间度量是没有任何意义的,因此时间统计参数(Timed Statistics)必须设置为TRUE,如下所示:
alter system set timed_statistics=true;
命令行执行
tkprof fox_ora_6641.trc a.out
tkprof中, sort后面的参数可以同时用多个, 只要用逗号分割并用括号括起来即可.比如, 如果以总的elapse time来排序, 可以:
tkprof tracefile outputfile sort=(prsela, exeela, fchela)
注意:这里最后排序依据的是各个sort参数的数字和, 而不是先依照第一个参数排序, 再按照后面的排序. 也就是说, 相当于Sql语句中的order by (sort1+sort2+sort3), 而不是 order by sort1, sort2, sort3.
因为是依据参数的数字和, 所以在使用多个参数时, 应该使用相同类型的参数, 比如说都是ela结尾的参数.
如果把不同类型的参数放到一起, 例如prsela, prscpu, 那就如同"一只鸡加两个苹果等于多少"一样毫无意义了.
Comments
There are currently no comments
New Comment