Oracle SQL Trace

(0 comments)

为了使用tkprof工具,必须启用SQL TRACE功能。修改SPFILE参数sql_trace=true,重启实例,可以开启整个数据库SQL TRACE功能。然而我们一般只需要对某个SESSION跟踪,如下所示:

  • 修改SESSSION参数。
alter session set sql_trace=true;
  • 从另外SESSION执行管理命令。
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, 那就如同"一只鸡加两个苹果等于多少"一样毫无意义了.

Currently unrated

Comments

There are currently no comments

New Comment

required

required (not published)

optional

required