使用tkprof工具分析oracle trace跟踪文件方法小结

转载: http://yedward.net/?id=140

 

启动跟踪文件

1. exec dbms_monitor.session_trace_enable

       (很多时候,需要跟踪的不是当前用户的进程,而是其他用户,这时候可以通过系统提供的          dbms_system.set_sql_trace_in_session来实现。set_sql_trace_in_session方法有三个参数,分别是sid、serial#以及true(或false),当为true时,表示启用跟踪,当为false时,表示跟踪关闭。sid和serial#可以通过查找v$session视图找到,也可以参照下v$process视图。示例如下,在命令窗口执行

     exec dbms_system.set_sql_trace_in_session(10, 223, true) -- 启用

     exec dbms_system.set_sql_trace_in_session(10. 223, false) -- 停止)

2.查找跟踪文件

 SELECT d.value || '/' || lower(rtrim(i.instance,

                                     chr(0))) || '_ora_' || p.spid || '.trc' trace_file_name FROM (SELECT p.spid

          FROM v$mystat  m,

               v$session s,

               v$process p

         WHERE m.statistic# = 1

           AND s.sid = m.sid

           AND p.addr = s.paddr) p,

       (SELECT t.instance

          FROM v$thread    t,

               v$parameter v

         WHERE v.name = 'thread'

           AND (v.value = 0 OR t.thread# = to_number(v.value))) i,

       (SELECT VALUE

          FROM v$parameter

         WHERE NAME = 'user_dump_dest') d

3.找到跟踪文件后,执行  t tkprof dcs_m000_5956.trc  result.txt

   下面列出一些tkprof生成文件中常看到的几个性能方面的数字:

count:表示执行的数据库调用数量。

cpu:表示处理数据调用花去的CPU时间,以秒为单位。

elapsed:表示处理数据库调用花费的总时间,以秒为单位。

disk:表示物理读的数据块数量。

query:表示在consistent mode下从高速缓存逻辑读取的块数量。

current:表示在当前模式下从高速缓存逻辑读取的块数量。

rows:表示处理的数据行数量。

 

猜你喜欢

转载自pb-water.iteye.com/blog/2311449