全名为Trace Kernel Profile,用来格式化跟踪文件,是一个命令行工具。

主要的格式例如以下:

tkprof tracefile outputfile …

tracefile:要分析的trace文件

outputfile:格式化后的文件

可选參数及说明例如以下:

EXPLAIN 为每一个SQL语句产生运行计划,指定用户方案和password,使用当中的PLAN_TABLE表

TABLE 当EXPLAIN选项生效时可用,指定替代PLAN_TABLE的表

SYS 启用该选项时不包括递归调用,=NO时,sys用户执行的SQL语句(比如,解析操作阶段对数据字典的递归查询)不输出到输出文件里

SORT 指定SQL语句的排序方式

RECORD 指定文件名称,将SQL语句写入,排除递归的SQL

PRINT 限定仅仅输出指定数量的分析SQL语句,默认是无限制的,仅仅有在和參数sort一起使用的时候才有意义

INSERT 指定一个文件名称,容纳相关的插入SQL语句,将分析的SQL及统计插入TKPROF_TABLE

AGGREGATE是否将同样sql语句的运行信息合计起来,默觉得yes

WAITS 指定是否统计跟踪文件里的等待事件

SORT选项可分三类,解析选项,运行选项和取数据选项(PRS,EXE,FCH),根椐这三种操作占用相关资源来排序。

TKPROF针对SQL的统计也分为三类:解析(prsela),运行(exeela),取数(fchela)

 

Count:Parse,Execute,Fetch发生的次数

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

Elapsed:是处理数据库调用花费的总的时间,以秒为单位

Disk:表示物理读取的数据块数量

Query:是在一致性模式(consistent mode)下从快速缓存逻辑读取的块数量

Current:代表在当前模式下从快速缓存逻辑读取的块数量

Rows:代表处理的数据行数量。对于查询来说,这就是获取的行数量。对于INSERT、DELETE、MERGE以及UPDATE 等语句来说,这是所影响的行数量

解析的信息開始两行Misses in library cache during parse和Misses in library cache during execute提供了发生在解析和运行调用阶段的硬解析数量。

假设在运行调用时没有硬解析发生,Misses in library cache during execute这一行将不存在。

运行计划分为两部分:

第一部分称为行源操作(Row Source Operation ),是游标关闭且开启跟踪情况下写到跟踪文件里的运行计划。这意味着假设应用程序不关闭游标而重用它们的话,不会有新的针对重用游标的运行计划写入到跟踪文件里。

第二部分,叫做运行计划 (Execution Plan),是由指定了explain參数的TKPROF生成的。既然这是随后生成的,所以和第一部分不一定全然匹配。万一你看到不一致,前者是正确的。

两个运行计划都通过Rows列提供运行计划中每一个操作返回的行数,不是处理的。

对于每一个行源操作来说,可能还会提供例如以下的执行时统计:

cr:是一致性模式下逻辑读出的数据块数

pr:是从磁盘物理读出的数据块数

pw:是物理写入磁盘的数据块数

time是以微秒表示的总的消逝时间。要注意依据统计得到的值不总是精确的。实际上,为了降低开销,可能用了採样

输出文件的结尾给出了全部关于跟踪文件的信息。首先能够看到跟踪文件名、版本、用于这个分析所使用的參数sort的值。然后,给出了全部会话数量与SQL语句数量。

从TKPROF的统计结果观察,发现下列特征的SQL可能须要调优:

1. 消耗过度的CPU资源;

2. 花费太长的时间在Parse,Execute,Fetch阶断;

3. 从磁盘读数据块太多而从SGA中读块非常少;

4. 存取太多的数据块(从SGA或者磁盘)而返回的行数非常少;

SQL性能优化工具TKPROF的更多相关文章

  1. Sql性能检测工具:Sql server profiler和优化工具:Database Engine Tuning Advisor

    原文:Sql性能检测工具:Sql server profiler和优化工具:Database Engine Tuning Advisor 一.工具概要     数据库应用系统性能低下,需要对其进行优化 ...

  2. ORACLE数据库学习之SQL性能优化详解

                                                                                    Oracle  sql 性能优化调整 ...

  3. SQL性能优化应该考虑哪些?

     1.调整数据结构的设计.这一部分在开发信息系统之前完成,程序员需要考虑是否使用ORACLE数据库的分区功能,对于经常访问的数据库表是否需要建立索引等. 2.调整应用程序结构设计.这一部分也是在开 ...

  4. MySQL 基础及性能优化工具

    数据库,用户及权限 常用用户管理操作 # 创建本地用户 abc create user abc@localhost # 创建内网能够访问的用户 abc create user abc@'192.168 ...

  5. SQL性能优化案例分析

    这段时间做一个SQL性能优化的案例分析, 整理了一下过往的案例,发现一个比较有意思的,拿出来给大家分享. 这个项目是我在项目开展2期的时候才加入的, 之前一期是个金融内部信息门户, 里面有个功能是收集 ...

  6. SQL性能优化

    引言: 以前在面试的过程中,总有面试官问道:你做过sql性能优化吗?对此,我的答复是没有.一次没有不是自己的错误,两次也不是,但如果是多次呢?今天痛下决心,把有关sql性能优化的相关知识总结一下,以便 ...

  7. 性能优化工具 MVC Mini Profiler

    性能优化工具 MVC Mini Profiler   MVC MiniProfiler是Stack Overflow团队设计的一款对ASP.NET MVC.WebForm 以及WCF 的性能分析的小程 ...

  8. ASP.NET MVC性能优化工具 MiniProfiler

    ASP.NET MVC性能优化工具 MiniProfiler 2014年04月19日 ⁄ ASP.NET ⁄ 共 1159字 ⁄ 字号 小 中 大 ⁄ 暂无评论 ⁄ 阅读 325 views 次 MV ...

  9. 我对SQL性能优化的看法,对我的文章有提议的欢迎评论!

    影响你的查询速度的原因是什么? 网速不给力,不稳定. 服务器内存不够,或者SQL 被分配的内存不够. sql语句设计不合理 没有相应的索引,索引不合理 表数据过大没有有效的分区设计 数据库设计太2,存 ...

随机推荐

  1. Python interview preparing

    Collection & Recommended: 1. CN - 论坛中看到. - EN 英文原文真的真的很好好好T_T,看得让人感动T_T 总结个人感兴趣的问题(以下部分参照上面): 1. ...

  2. ActionBarSherlock的学习笔记(二) ------------ 创建ActionBarSherlock

    将ActionBarSherlock 作为库项目添加到当前的项目中去,然后创建ActionBar,并自定义ActionBar的标题栏 例子如下: import android.os.Bundle; i ...

  3. 常用的PL/SQL开发原则

    (1)广泛使用绑定变量,特别是批量绑定,因为这可以有效的避免sql的硬解析和PL/SQL引擎和SQL引擎的上下文切换!(2)广泛使用UROWID来处理DML语句(UROWID是ROWID扩展,ORAC ...

  4. winfrom dataGridView 自定义分页实现

    Winfrom 基本处于忘光的阶段.先需要做个winfrom 的软件.然后自己扩展了DataGridView带分页的控件.废话不多说 上图先   现在一步步实现其效果. 1.添加用户控件 上图即可知道 ...

  5. 【转】一个windows线程池实现

    #ifndef _ThreadPool_H_ #define _ThreadPool_H_ #pragma warning(disable: 4530) #pragma warning(disable ...

  6. C#网络资源列表

    1, http://club.topsage.com/thread-371996-1-1.html

  7. LightOJ 1038-Race to 1 Again(概率dp)

    题意: 给你一个数n每一步这个数可以变为他的因子,直到这个数变为1,求n变到1的期望步数. 分析: dp[i],表示i变为1的期望步数,dp[1]=0,dp[n]是答案. dp[i]=sum(dp[j ...

  8. lightoj 1024 (高精度乘单精度)

    题意:给你一些数,求它们的最小公倍数,结果可能会很大. 统计出每个素因子出现的最大次数,把他们相乘即可,需要高精度. #include<cmath> #include<cstdio& ...

  9. Geodesic-based robust blind watermarking method for three-dimensional mesh animation by using mesh segmentation and vertex trajectory

    之前因为考试,中断了实验室的工作,现在结束考试了,不能再荒废了. 最近看了一篇关于序列水印的文章,大体思想是:对于一个网格序列,首先对第一帧进行处理,在第一帧上,用网格分割算法(SDF)将网格分割成几 ...

  10. nginx配置:location配置方法及实例详解

    今天深入研究了下nginx的location的用法,已经一些需要注意的细节,现在做一个归纳总结,以备后面查询. location匹配的是nginx的哪个变量? $request_uri locatio ...