全名为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. golang学习遭遇duang...duang...duang

    初学golang时,在windows上使用liteIDE进行,很多语法都能自己调整. 后来使用linux桌面,再次编写时,发现很多东西都忘掉了.这难道就是习惯gocode后的弊端吗?还是人到 前中年 ...

  2. HDU5772 String problem 最大权闭合图+巧妙建图

    题意:自己看吧(不是很好说) 分析: 网络流:最大权闭合子图. 思路如下: 首先将点分为3类 第一类:Pij 表示第i个点和第j个点组合的点,那么Pij的权值等于w[i][j]+w[j][i](表示得 ...

  3. linux常用命令之--文件打包与压缩命令

    linux的文件打包与压缩命令 1.压缩与解压命令 compress:用于压缩指定的文件,后缀为.z 其命令格式如下: compress [-d] 文件名 常用参数: -d:解压被压缩的文件(.z为后 ...

  4. C++类与对象

    [1]类的内存问题 类是抽象的,不占用内存,而对象是具体的,占用 存储空间.在一开始时弄清对象和类的关系是十分 重要的.[2]类的声明 如果在类的定义中既不指定private也不指定public,则系 ...

  5. char[]数组与char *指针的区别

    char[]数组与char *指针的区别 问题描述 虽然很久之前有看过关于char指针和char数组的区别,但是当时没有系统的整理,到现在频繁遇到,在string,char[], char *中迷失了 ...

  6. MVC & MVVM

    什么是MVC,什么是MVVM? 面向过程 --> 面向对象 --> MVC --> MV* 面向过程: 开发人员按照需求逻辑顺序开发代码逻辑,主要思维模式在于如何实现.先细节,后整体 ...

  7. 【跟我一起学Python吧】Python 多线程

    其实自我感觉Python的多线程很类似于Java的多线程机制,但是比JAVA的多线程更灵活.在早期的Python多线程实现中,采用了thread模块.例如: from time import ctim ...

  8. stl+模拟 CCF2016 4 路径解析

    // stl+模拟 CCF2016 4 路径解析 // 一开始题意理解错了.... #include <iostream> #include <string> #include ...

  9. HDU5778 abs

    http://acm.hdu.edu.cn/showproblem.php?pid=5778 思路:只有平方质因子的数,也就是这题所说的   y的质因数分解式中每个质因数均恰好出现2次  满足条件的数 ...

  10. boosting和bagging

    首先来说明一下bootstraps:可以把它认为是一种有放回的抽样方法. bagging:boostraps aggregating(汇总) boosting:Adaboot (Adaptive Bo ...