tkprof它是Oracle它配备了一个命令直插式工具,其主要作用是将原始跟踪文件格文本文件的类型,例如,最简单的方法,使用下面的:

tkprof ly_ora_128636.trc ly_ora_128636.txt

tkprof带有非常多參数,在多数情况下,使用这些參数对你的分析将非常有帮助。

tkprof參数

假设不带不论什么參数执行tkprof,它将打印出完整的參数列表,并带有简单的描写叙述。以下是对參数的说明:

explain

为每一个SQL语句提供一个运行计划。

该參数须要指定用户、密码。也能够指定数据库连接串,如:explain=user/password@connect_string或者explain=user/password。

table

纸盒explain參数一起使用,用于指定生成运行计划使用的表,通常不须要指定,仅仅有当用户不能创建表时才须要(如缺少create table权限)。

print

用于限制输出文件生成的SQL语句的数量,比如:print=10.

aggregate

指定是否单独处理相同内容的SQL语句。默认不单独处理。指定为aggregate=no,看单独的每一个SQL语句。

insert

生成SQL脚本,SQL脚本能够用来存储信息到数据库中,SQL脚本的名字由參数指定,如:insert=load.sql。

sys

指定sys用户执行的SQL语句是否也写入到输出文件里,默认yes。

record

生成SQL脚本。里面包括在trace文件里找到的全部非递归语句,脚本名通过參数本身来指定。比如:record=replay.sql。

waits

是否加入等待事件的信息,默认加入。

sort

指定写入输出文件里的SQL语句的顺序。默认是trace文件里发现的SQL顺序。

以下是一个样例:

tkprof {input trace file} {output file} sys=no sort=prsela,exeela,fchela

prsela:第一个游标解析耗费的时间

exeela:针对游标运行花费的时间

fchela:游标获取数据行所花费的时间

tkprof输出

输出文件带有一个头,当中有对參数的说明。例如以下:

**********************************************************************
count = number of times OCI procedure was executed
cpu = cpu time in seconds executing
elapsed = elapsed time in seconds executing
disk = number of physical reads of buffers from disk
query = number of buffers gotten for consistent read
current = number of buffers gotten in current mode (usually for update)
rows = number of rows processed by the fetch or execute call
**********************************************************************

count:运行的数据库调用次数

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

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

disk:物理读的数据块数量,假设大于逻辑读的数量(disk>query+current),表示使用了暂时表空间。

query:在一致性模式下从快速缓存逻辑读取的快数量。用作查询。

current:在当前模式下从快速缓存逻辑读取的块数量,用于insert、delete、merge以及update等操作。

rows:处理的数据行数量。查询表示获取的行数量。而insert、delete、merge以及update等则表示影响的行数量。

以下看一个详细的样例:

call     count       cpu    elapsed       disk      query    current        rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 501 0.03 0.15 0 1465 0 50001
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 503 0.03 0.15 0 1465 0 50001

上面分别相应了parse、execute和fetch这3个阶段。在fetch阶段运行了501次fetch,获取了50001行数据,每次fetch获取100行数据。

接下来是:

Misses in library cache during parse: 1
Misses in library cache during execute: 1
Optimizer mode: ALL_ROWS
Parsing user id: 5

前两行表示发生在解析和运行调用阶段的硬解析数量。假设没有硬解析。则不存在。

“Optimizer mode”表示优化器模式。

“Parsing user id”是解析SQL语句的用户。

在这之后能够看到运行计划,这里仅仅做一个简单解说:

Rows     Row Source Operation
------- ---------------------------------------------------
50001 COUNT STOPKEY (cr=1465 pr=0 pw=0 time=300125 us)
50001 VIEW (cr=1465 pr=0 pw=0 time=200088 us)
50001 INDEX FULL SCAN IDX_HISTORYALARM$CLEAR (cr=1465 pr=0 pw=0 time=100049 us)(object id 53743)

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

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

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

time:以微妙表示的总的耗费时间,注意数据不精确

cost:操作的评估开销(仅11g才提供)

size:操作返回的预预计数据量(字节数)(仅11g才提供)

card:操作返回的预预计行数(仅11g才提供)

接下来就是等待事件:

  Event waited on                             Times Waited   Max. Wait  Total Waited
----------------------------------------------------------------------------------
SQL*Net message to client 502 0.00 0.00
SQL*Net message from client 502 0.08 15.42
SQL*Net more data to client 500 0.00 0.01

Times Waited:等待时间占用时间

Max. Wait:单个等待事件最大等待时间,单位为秒

Total Waited:针对一个等待事件总的等待秒数。不精确

这里你能够看到运行中遇到的等待事件,通过对这些等待事件的分析。有助于你了解在等待什么样的资源,查询的瓶颈,有针对的做出优化。

能够在Oracle Database Reference在一份简短的叙述中附录的手册描述了最常见的等待事件。

版权声明:本文博主原创文章。博客,未经同意不得转载。

Oracle性能分析3:TKPROF简介的更多相关文章

  1. Oracle性能分析12:对象统计信息

    对象统计信息描写叙述数据是如何在数据库中存储的,查询优化器使用这些统计信息来做出正确的决定.Oracle中有三种类型的对象统计信息:表统计.列统计和索引统计.而在每种类型中,有细分为:表或索引级别的统 ...

  2. 【性能诊断】五、并发场景的性能分析(windbg简介及dump抓取)

    windbg简介 Windbg是在windows平台下,强大的用户态和内核态调试工具.相比较于Visual Studio,它是一个轻量级的调试工具,所谓轻量级指的是它的安装文件大小较小,但是其调试功能 ...

  3. Oracle性能分析11:系统统计信息

    早期Oracle查询优化器的开销计算是基于运行SQL语句所须要的物理读,这种方法被叫做I/O开销模式(I/O cost model),这种方法的主要缺点是觉得单块读和多块读开销相当.在Oracle 8 ...

  4. Oracle性能分析1:开启SQL跟踪和获取trace文件

    当Oracle查询出现效率问题时,我们往往须要了解问题所在,这样才干针对问题给出解决方式.Oracle提供了SQL运行的trace信息,当中包括了SQL语句的文本信息.一些运行统计,处理过程中的等待, ...

  5. Oracle性能分析7:创建索引

    在创建索引时,我们往往希望可以预估索引大小,以评估对现有project环境的影响,我们也希望创建索引的过程可以最小化的影响我们正在执行的project环境,并能查看索引的状况. 预估索引大小 预估索引 ...

  6. .NET Core 性能分析: xUnit.Performance 简介

    xunit-performance 是xUnit的一个扩展, 使用它可以对.NET Core项目进行性能测试. 官网:https://github.com/Microsoft/xunit-perfor ...

  7. Oracle 性能分析

    1.--查出耗时长的 10条SQL select * from (select v.sql_id, v.child_number, v.sql_text, v.elapsed_time, v.cpu_ ...

  8. 系统级性能分析工具perf的介绍与使用

    测试环境:Ubuntu16.04(在VMWare虚拟机使用perf top存在无法显示问题) Kernel:3.13.0-32 系统级性能优化通常包括两个阶段:性能剖析(performance pro ...

  9. 系统级性能分析工具perf的介绍与使用[转]

    测试环境:Ubuntu16.04(在VMWare虚拟机使用perf top存在无法显示问题) Kernel:3.13.0-32 系统级性能优化通常包括两个阶段:性能剖析(performance pro ...

随机推荐

  1. php(LAMP)开发环境配置相关问题及解决办法

    相信很多像我一样初次接触到php开发的人,在配置基本的开发环境时都是一头雾水,为此小编特写下自己在安装配置php开发环境过程中遇到的一些问题,及解决办法. 1.LAMP组合,安装centons+apa ...

  2. art patchoat

    Add patchoat tool to Art. Add a new executable called patchoat to art. This tool takes alreadycompil ...

  3. hdu1874畅通工程续 (dijkstra)

    Problem Description 某省自从实行了很多年的畅通工程计划后,终于修建了很多路.不过路多了也不好,每次要从一个城镇到另一个城镇时,都有许多种道路方案可以选择,而某些方案要比另一些方案行 ...

  4. jstl的小问题

    jstl试了半天,终于知道错在哪里了! 这是jsp中的代码 从select中取得user_id:看清楚了 是user_id:小写第一位; <table width="50%" ...

  5. XSS学习笔记(一个)-点击劫持

    所谓XSS这个场景被触发XSS地方,在大多数情况下,攻击者被嵌入在网页中(问题)该恶意脚本(Cross site Scripting),这里的攻击始终触发浏览器端,攻击的者的目的.一般都是获取用户的C ...

  6. 重新启动IIS服务的方法

    WINDOWS提供WEB服务的IIS有时候会出现訪问过大导致站点打不开,这时重新启动IIS是最好的选择. 1.界面操作 打开"控制面板"->"管理工具"- ...

  7. [jQuery]地图浏览:如何实现图片的放大缩小和点击之后的位置居中

    HTML代码: <!DOCTYPE html> <html> <head> <script src="http://ajax.googleapis. ...

  8. UVA - 12232 Exclusive-OR (并查集扩展偏离向量)

    Description You are not given n non-negative integersX0,X1,..., Xn-1 less than220, but they do exist ...

  9. 苹果公司的新的编程语言 Swift 高级语言(十一)--初始化类的析构函数的一个实例

    一 .实例的初始化          实例的初始化是准备一个类.结构或枚举的实例以便使用的过程. 初始化包含设置一个实例的每个存储属性为一个初始值,以及运行不论什么其他新的实例可以使用之前须要的设置或 ...

  10. 编译Nginx支持Tcp_warppers

    Tcp wrappers : Transmission Control Protocol (TCP) Wrappers 为由 inetd 生成的服务提供了增强的安全性.TCP Wrappers 是一种 ...