tkprof格式化文件的使用示例

例子:利用格式化的输出文件进行sql调整

第一步: - 现看格式化输出文件最后部分,即汇总部分

===========================================================

OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTS

| call  | count | cpu | elapsed |  disk | query | current |  rows |

|--------- |------- |------  |--------- |---------  |-------- |---------  |--------  |

| Parse  | [A] 7 | 1.87 |  4.53 |  385 | [G] 553 |   22 |   0 |

| Execute | [E] 7 | 0.03 |  0.11 | [P]  0 | [C]  0 | [D]  0 | [F] 0 |

| Fetch  | [E] 6 | 1.39 |  4.21 | [P] 182 | [C] 820 | [D]  3 | [F] 20 |

--------------------------------------------------------------------------

Misses in library cache during parse: 5

Misses in library cache during execute: 1

8 user SQL statements in session.

12 internal SQL statements in session.

[B] 54 SQL statements in session.

3 statements EXPLAINed in this session.

(1)。 通过比较 [A] 与 [B],我们可以发现是否有过量的parsing现象。在上面的例子中,我们可以看到在session中执行了54个语句,但是只有7次parses,所以这是比较正常的,没有过量的parse现象。

(2)。 利用 [P], [C] & [D] 来决定数据库高速缓存的命中率问题

Hit Ratio is logical reads/physical reads:

Logical Reads = Consistent Gets + DB Block Gets

Logical Reads = query      + current

Logical Reads = Sum[C]     + Sum[D]

Logical Reads = 0+820      + 0+3

Logical Reads = 820       + 3

Logical Reads = 823

Hit Ratio = 1 - (Physical Reads / Logical Reads)

Hit Ratio = 1 - (Sum[P]     /  Logical Reads)

Hit Ratio = 1 - (128      /  823)

Hit Ratio = 1 - (0.16)

Hit Ratio = 0.84 or 84%

(3)。 我们希望fetch的次数要比rows小,即一次fetch可以取多行数据(array fetching),

可以我们可以更高效的取得查询数据。

这可以通过比较[E]与[F].

[E] = 6 = Number of Fetches

[F] = 20 = Number of Rows

从上面的信息中我们可以看到,6次fetch总共取了20行数据,结果不是很坏。如果使用了经过良好配置arrayfetching,则可以用更少的fetch次数取到同样数量的数据,性能会更好。

(4)。 [G] 表示为了对语句进行分析,读数据字典告诉缓存的次数

- 这个参数对性能的影响不大,一般不用关心。而且这个统计值一般不是我们可以控制的。

第二步 – 检查耗费大量资源的语句

===============================================

update …

where …

| call  | count | cpu | elapsed | disk |  query | current |  rows |

|--------- |------- |----- |---------  |------ |--------  |--------- |-------- |

| Parse  |   1 |  7 |   122 |  0 |    0 |   0 |   0 |

| Execute |   1 | 75 |   461 |  5 | [H] 297 |  [I] 3 |  [J] 1 |

| Fetch  |   0 |  0 |    0 |  0 |    0 |   0 |   0 |

-----------------------------------------------------------------------

[H] 表明需要访问297个数据块才能找到我们需要修改的数据。

[I] 表明我们的修改操作才修改3个数据块中的数据

[J] 表明我们只修改了一行数据(其它数据块的修改应为undo、redo信息)为了修改一行数据而要搜寻297个数据块。考虑是否需要在查许的列上建一个索引!

第三步 – 查看是否有过量的parse现象

==============================

select …

| call  | count |   cpu | elapsed | disk | query | current | rows |

|--------- |------ -|---------  |--------- |----- -|-------  -|-------- -|------  -|

| Parse  | [M] 2 |  [N] 221 |  329 |  0 |   45 |   0 |   0 |

时间: 2024-10-22 21:18:05

tkprof格式化文件的使用示例的相关文章

PHP实现格式化文件数据大小显示的方法

 这篇文章主要介绍了PHP实现格式化文件数据大小显示的方法,通过一个自定义函数实现针对文件大小的精确格式化,具有一定的参考借鉴价值,需要的朋友可以参考下     本文实例讲述了PHP实现格式化文件数据大小显示的方法.分享给大家供大家参考.具体分析如下: 有时候我们需要在网页上显示某个文件的大小,或者是其它数据的大小数字. 这个数字往往从跨度很大,如果以B为单位的话可能是个位,如果1G则长达1073741824的数字,这个时候我们就需要根据大小来格式化,比如小于1K则以B为单位显示,小于1M则以K

FinalData恢复格式化文件教程

  格式化文件范围: 删除文件或文件夹并清空回收站 立刻删除暂不放在回收站的文件 删除感染病毒的文件 格式化了有着重要数据的硬盘分区 具体恢复步骤: 第1步:在 FINALDATA 3.0 Wizard 界面上,点击[恢复删除/丢失文件]按钮. 第2步:点击[恢复丢失数据] 第3步:搜索需要恢复文件的硬盘分区,并点击[扫描]按钮. 第4步:搜索文件来恢复.您可以在目录窗口中归类中可以找到你的文件.如果您找到了您所要的文件,点击[恢复]按钮则可. 第5步:在选择目录保存恢复的文件后,点击[ OK]

Java中读/写文件文本文件的示例

1.FileReader----读取字符流 2.FileWriter----写入字符流 3.BufferedReader----缓冲指定文件的输入 该类的方法有: void close()         关闭该流.  void mark(int readAheadLimit)         标记流中的当前位置.  boolean markSupported()         判断此流是否支持 mark() 操作(它一定支持) int read()         读取单个字符.  int

asp.net检查服务器上目录或文件是否存在示例

原文 asp.net检查服务器上目录或文件是否存在示例 asp.net为我们提供了文件系统对象了,对于目录与文件判断是否存在我们有System.IO.File.Exists与System.IO.Directory.Exists即可,下面看两个应用实例. 判断文件是否存在  代码如下 复制代码 using System.IO;  // 还需要命名空间,别忘了if (System.IO.File.Exists("c:aaa.txt"))    // 注意双引号路径应为双斜杠{       

JS基于FileSaver.js插件实现文件保存功能示例[原创]_javascript技巧

本文实例讲述了JS基于FileSaver.js插件实现文件保存功能.分享给大家供大家参考,具体如下: 这里介绍一款js插件用法非常简单,先来看看FileSaver.js插件源码: 复制代码 代码如下: /*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */ var saveAs=saveAs||function(e){"use strict";if(typeof naviga

asp.net文件上传示例

 ASP.NET依托.net framework类库,封装了大量的功能,使得上传文件非常简单,主要有以下三种基本方法,需要的朋友可以参考下 方法一:用Web控件FileUpload,上传到网站根目录.   Test.aspx关键代码:    代码如下: <form id="form1" runat="server"> <asp:FileUpload ID="FileUpload1" runat="server"

Node.js模拟浏览器文件上传示例

 这篇文章主要介绍了Node.js模拟浏览器文件上传的实现代码,需要的朋友可以参考下 OSChina上发过了,那个也是我的,现在放到这来,哈哈     代码如下: var path=require("path");  var fs=require("fs");  var http=require("http");    //post值payload  var getfield=function(field, value) {  return 'C

PHP读取zip文件的方法示例_php技巧

本文实例讲述了PHP读取zip文件的方法.分享给大家供大家参考,具体如下: <?php $zip = zip_open("111.zip"); if ($zip) { while ($zip_entry = zip_read($zip)) { echo "Name: " . zip_entry_name($zip_entry) . "n"; echo "Actual Filesize: " . zip_entry_fil

Servlet实现文件上传,可多文件上传示例_javascript技巧

一.Servlet实现文件上传,需要添加第三方提供的jar包 下载地址: 1) commons-fileupload-1.2.2-bin.zip:  点击打开链接 2)  commons-io-2.3-bin.zip:    点击打开链接  接着把这两个jar包放到 lib文件夹下: 二:文件上传的表单提交方式必须是POST方式, 编码类型:enctype="multipart/form-data",默认是 application/x-www-form-urlencoded 比如: &