oracle tkprof工具格式化trace文件

原创 2011年01月20日 16:54:00

Tkprof是一个用于分析Oracle跟踪文件并且产生一个更加清晰合理的输出结果的可执行工具。如果一个系统的执行效率比较低,一个比较好的方法是通过跟踪用户的会话并且使用Tkprof工具使用排序功能格式化输出,从而找出有问题的SQL语句。

 

Tkprof的用法:

1,初始化Tkprof

首先查看是否符合初始化条件

show parameter user_dump_dest

show parameter timed_statistics

show parameter max_dump_file_size

 

如果user_dump_dest存在,timed_statistics为TRUE,max_dump_file_size大小合适。则符合

 

如果不合适则需要修改

 

alter system set user_dump_dest;#trace文件存放的位置

alter session set timed_statistics=true;#允许sql trace 和其他的一些动态性能视图收集与时间有关的参数

alter session set max_dump_file_size;#设置trace文件的大小

 

2,启动一个session的Tkprof

 

2,1命令启动:

alter session set sql_trace=true;

2,2通过存储过程启动(我在使用的时候老是报ora-06550的错误,还在找原因)

 

select sid,serial#,osuser from v$session;

execute rdbms_system.set_sql_trace_in_session(sid,serial#,true);

3,关闭一个session的Tkprof

3,1命令关闭:

alter session set sql_trace=false;

3,2通过存储关闭

execute rdbms_system.set_sql_trace_in_session(sid,serail#,false);

 

不建议为整个实例启动SQL TRACE(内存消耗太多,一般不会使用)

alter session set sql_trace=true scope=spfile;

 

 

4,使用Tkprof

 

cd /../trace;#user_dump_dest指定的位置

 

tkprf  xxxxxx.trc xxxxx.out  sys=on[optional|parameters];

vi  xxx.out

 

 

参数说明:

explain=user/password 执行explain命令将结果放在SQL trace的输出文件中

table=schema.table 指定tkprof处理sql trace文件时临时表的模式名和表名
insert=scriptfile 创建一个文件名为scriptfile的文件,包含了tkprof存放的输出sql语句
sys=[yes/no] 确定系统是否列出由sys用户产生或重调的sql语句
print=number 将仅生成排序后的第一条sql语句的输出结果
record=recordfile 这个选项创建一个名为recorderfile的文件,包含了所有重调用的sql语句
sort=sort_option 按照指定的方法对sql trace的输出文件进行降序排序
sort_option 选项
prscnt 按解析次数排序
prscpu 按解析所花cpu时间排序
prsela 按解析所经历的时间排序
prsdsk 按解析时物理的读操作的次数排序
prsqry 按解析时以一致模式读取数据块的次数排序
prscu 按解析时以当前读取数据块的次数进行排序
execnt 按执行次数排序
execpu 按执行时花的cpu时间排序
exeela 按执行所经历的时间排序
exedsk 按执行时物理读操作的次数排序
exeqry 按执行时以一致模式读取数据块的次数排序
execu 按执行时以当前模式读取数据块的次数排序
exerow 按执行时处理的记录的次数进行排序
exemis 按执行时库缓冲区的错误排序
fchcnt 按返回数据的次数进行排序
fchcpu 按返回数据cpu所花时间排序
fchela 按返回数据所经历的时间排序
fchdsk 按返回数据时的物理读操作的次数排序
fchqry 按返回数据时一致模式读取数据块的次数排序
fchcu 按返回数据时当前模式读取数据块的次数排序
fchrow 按返回数据时处理的数据数量排序

 

sql trace 的输出结果:

count:提供OCI过程的执行次数
CPU: 提供执行CPU所花的时间单位是秒
Elapsed:提供了执行时所花的时间。单位是秒。这个参数值等于用户响应时间
Disk:提供缓存区从磁盘读取的次数
Query:以一致性模式从缓存区获得数据的次数
Current:以当前模式从缓存区获得数据的次数
ROWs: 返回调用或执行调用时,处理的数据行的数量。

版权声明:本文为博主原创文章,未经博主允许不得转载。

使用 Tkprof 分析 ORACLE 跟踪文件

Tkprof是一个用于分析Oracle跟踪文件并且产生一个更加清晰合理的输出结果的可执行工具。如果一个系统的执行效率比较低,一个比较好的方法是通过跟踪用户的会话并且使用Tkprof工具使用排序功能格式...
  • tianlesoftware
  • tianlesoftware
  • 2010年05月28日 23:28
  • 16215

ORACLE TKPROF使用步骤

1.Tkprof是一个分析ORACLE跟踪文件并且产生一个更加人性化清晰的输出结果的可执行工具。C:/oracle/ora92/bin/tkprof.exe2. tkprof 全称参考信息http:/...
  • huanghui22
  • huanghui22
  • 2006年10月14日 14:52
  • 20023

细说tkprof的使用方法

熟悉oracle的同学,对tkprof应该不会陌生。今天用的tkprof,有些语法变得模糊起来。查看文档,重新梳理有关tkprof的有关知识,加深记忆。 通过tkfprof可以非常方便的跟踪诊断sql...
  • joeadai
  • joeadai
  • 2013年12月26日 10:17
  • 1416

简单分析tkprof输出文件的内容

[oracle@rhf trace]$ tkprof orcl_ora_29583_rtrace.trc rhf2.prf explain=system/oracle sort=exeela,prse...
  • mensuo1111
  • mensuo1111
  • 2016年09月06日 15:52
  • 398

怎样使用TKPROF工具——《Oracle高效设计》学习笔记

Oracle具有打开一个相当低层的跟踪功能的能力。一旦启用跟踪文件,Oracle将会记录许多有价值的信息。TKPROF工具就是用于将这些跟踪文件转换成我们容易阅读的格式。 1.启用跟踪功能alter ...
  • swordmanwk
  • swordmanwk
  • 2011年02月22日 19:02
  • 2636

Oracle Trace文件生成及TKPROF格式化查看

Oracle Trace文件生成及TKPROF格式化查看 实例
  • badyflf
  • badyflf
  • 2016年04月14日 12:45
  • 941

Oracle Trace文件生成及查看

1.Trace file简介: Trace file(追踪文件)是以trc为后续的文本文件,它记录了各种sql操作及所消耗的时间等,根据trace文件我们就可以了解哪些sql导致了系统的性能瓶颈,进...
  • weiwenhp
  • weiwenhp
  • 2011年11月03日 16:45
  • 31626

使用trace文件分析ANR

当ANR发生时除过logcat可以看见的log以外我们还可以在系统指定目录下找到traces文件进行分析...
  • jiangguangchao
  • jiangguangchao
  • 2017年02月07日 12:32
  • 5855

Oracle查看跟踪文件及其tkprof工具的使用

sql_trace 和10046 事件 首先 SQL> alter session set events='10046 trace name context forever,level12‘; ...
  • a154832918
  • a154832918
  • 2012年04月11日 15:59
  • 2872

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

Tkprof: 分析ORACLE跟踪文件并且产生一个更加人性化清晰的输出结果的可执行工具 TKPROF使用步骤 1.设置参数文件 设置三个参数timed_staticstices user_du...
  • FIGHT_ANGEL
  • FIGHT_ANGEL
  • 2014年02月11日 17:16
  • 806
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:oracle tkprof工具格式化trace文件
举报原因:
原因补充:

(最多只允许输入30个字)