全名为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. 【转】statfs获得硬盘使用情况 模拟linux命令 df

    原文网址:http://blog.csdn.net/mociml/article/details/5335474 说明:本文以主要为转载内容,同时加入了我在使用过程中遇到问题对其的修正!!!!!!!! ...

  2. LwIP编译方法以及选项说明

    条件编译命令 作用说明 IP_SOF_BROADCAST   LWIP_IGMP  

  3. Oracle 课程四之索引

    课程目标 完成本课程的学习后,您应该能够: 理解b*tree索引的结构与特征 了解聚簇因子的产生原因 理解分区索引与全局索引的区别及场景 掌握组合索引的高效设计 位图索引的适用场景 全文索引的适用场景 ...

  4. Linux应用层直接操作GPIO

    Linux应用层直接操作GPIO 在一个老手的指导下,应用层可以直接操作GPIO,具体指设置GPIO的输入输出以及输出电平高或者低.这个大大地提高了灵活性,官方的文档有GPIO Sysfs Inter ...

  5. C# chart控件绘制曲线

    在.NET中以前经常用GDI去绘制,虽然效果也不错,自从.NET 4.0开始,专门为绘制图表而生的Chart控件出现了,有了它,就可以轻松的绘制你所需要的曲线图.柱状图什么的了. using Syst ...

  6. 翻译【ElasticSearch Server】第一章:开始使用ElasticSearch集群(3)

    运行ElasticSearch(Running ElasticSearch) 让我们运行我们的第一个实例.转到bin目录并从命令行运行以下命令: ./elasticsearch –f (Linux o ...

  7. HDU 2227-Find the nondecreasing subsequences(dp+BIT优化)

    题意: 给你一个序列a[],求它的不降子序列的个数 分析: dp[i]表示以i结尾不降子序列的个数,dp[i]=sum(dp[j])+1(j<i&&a[j]<=a[i]); ...

  8. asp.net中遍历界面上所有控件进行属性设置

    * 使用方法: *  前台页面调用方法,重置:    protected void Reset_Click(object sender, EventArgs e)        {           ...

  9. 双网卡bond

           使用双网卡虚拟为一块网卡: 服务器版本: [root@kel ~]# lsb_release -a LSB Version: :core-3.1-amd64:core-3.1-ia32: ...

  10. VS20xx下项目开发目录管理方法

    在VS20XX之后项目管理使用解决方案(solution)管理一个大的开发工程中多个项目(Project). 以下目录配置与工程名称无关,适用于一般的工程组织过程. 对于一般的生成可执行程序的工程,使 ...