ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Tkprof: 分析ORACLE跟踪文件并且产生一个更加人性化清晰的输出结果的可执行工具

Tkprof: 分析ORACLE跟踪文件并且产生一个更加人性化清晰的输出结果的可执行工具

原创 Linux操作系统 作者:plumblossom 时间:2012-08-30 14:39:05 0 删除 编辑
alter system set timed_statistics=true;
show parameter dump
alter session set sql_trace=true;
 
1. 在数据库级别上设置TIMED_STATISTICS为True。
8i数据库需要修改init文件增加TIMED_STATISTICS=true,然后重启数据库使其生效。
9i数据库可以直接修改:
SQL> alter system set timed_statistics=false scope=both;
如果要在PL/SQL中对session级别上设置trace,可以使用dbms_session这个包:
SQL>exec dbms_system.set_sql_trace_in_session(sid,serial#,true);
3. 找到生成的正确的trace文件,在init.ora初始化参数文件中 user_dump_dest定义的路径下可以找到。
4 对trace文件使用tkprof工具进行分析。
tkprof tracefile outfile [explain=user/password] [options...]
一般来说,使用tkprof得到的输出文件中包含三个部分:
SQL语句本身。
相关的诊断信息,包括cpu时间、总共消耗的时间、读取磁盘数量、逻辑读的数量、以及查询中返回的记录数目。
列出这个语句的执行计划。

==================

ORACLE TKPROF使用步骤

1.Tkprof是一个分析ORACLE跟踪文件并且产生一个更加人性化清晰的输出结果的可执行工具。C:\oracle\ora92\bin\tkprof.exe

2. tkprof 全称

TKPROF stands for transient kernel profiler.

3. 基本的使用步骤

1)        SQL> alter system set timed_statistics=true;

2)        用户级自跟踪:

SQL>ALTER SESSION SET SQL_TRACE=TRUE;

SQL>ALTER SESSION SET SQL_TRACE=FALSE;

用户级DBA跟踪:(例如sys跟踪test,需要用sysdba登录)

.      a). SQL>select s.USERNAME,s.SID,s.SERIAL#,s.COMMAND from v$session s

where s.USERNAME='COLM' ;

b). SQL>exec sys.dbms_system.set_sql_trace_in_session(9,7,true);

c). SQL>exec sys.dbms_system.set_sql_trace_in_session(9,7,false);

       ps:9为SID,7为SERIAL#

3)        C:> cd C:\oracle\admin\COLM\udump

4)        C:\oracle\admin\COLM\udump> tkprof colm_ora_2056.trc trace.txt print=100 record=sql.txt sys=no

5)        查看trace.txt文件

范例:

*******************************************************************************

SELECT *

FROM

col_case

call     count       cpu    elapsed       disk      query    current        rows

------- ------ -------- ---------- ---------- ---------- ---------- ----------

Parse        1      0.00       0.00          0          0          0           0

Execute      0      0.00       0.00          0          0          0           0

Fetch        0      0.00       0.00          0          0          0           0

------- ------ -------- ---------- ---------- ---------- ---------- ----------

total        1      0.00       0.00          0          0          0           0

Misses in library cache during parse: 1

Optimizer goal: CHOOSE

Parsing user id: 62

需要调整的语句符合以下几点:

(1).CPU占用过多

(2).Parse,Execute,Fetch花费太多时间

(3).DISK读取太多,query/current(SGA)中数据块读取太少

(4).访问许多块,只返回2行

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/134012/viewspace-742262/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2012-07-23

  • 博文量
    6
  • 访问量
    4171