`
liwenshui322
  • 浏览: 510989 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

(转)Oracle 10g中如何使用TKPROF性能分析工具介绍

 
阅读更多

Oracle具有打开一个相当底层的跟踪能力的工具,就是TKPROF。一旦启用跟踪,Oracle将所有的SQL和应用程序使用的顶层PL/SQL调用记录到服务器上的跟踪文件中。

启用TKPROF

在开始运行TFPROF之前需要开启一些设置,可以将其编辑称为一个脚本程序:starttfprof.sql,其中包含的内容:
 

alter session set timed_statistics=true;
alter session set events '10046 trace name context forever,level 12';

 
l  1启用了标准SQL_TRACE工具
l  4启用了SQL_TRACE并捕捉跟踪文件中的绑定变量的值
l  8启用了SQL_TRACE并捕捉跟踪文件的等待事件
l  12启用标准的SQL_TRACE并捕捉绑定变量和等待事件
 

运行TKPROF

启用了TKPROF以后,就可以执行你需要执行的SQL语句了。例如,我设计了一张大表,在OE用户下进行如下操作:
 

Create table seagal_orders
As
Select * from orders
 
Insert into seagal_orders
Select * from seagal_orders
 
这样重复不断执行,直到seagal_orders表中有超过150万行记录为止,设计了一个大表,有百万条记录。但是其中包含非常多的重复的记录。(没关系)

 
执行如下的操作:
 

SQL> select count(*) from oe.seagal_orders where customer_id=118;
 
  COUNT(*)
----------
     32768

 
 
然后,获得系统追踪文件:
 

SQL> select rtrim(c.value,'\') ||'\'||d.instance_name||
  2  '_ora_' ||ltrim(to_char(a.spid))||'.trc'
  3  from v$process a,v$session b,v$parameter c,v$instance d
  4  where a.addr=b.paddr
  5  and b.audsid =sys_context('userenv','sessionid')
  6  and c.name='user_dump_dest';
 
RTRIM(C.VALUE,'\')||'\'||D.INSTANCE_NAME||'_ORA_'||LTRIM(TO_CHAR(A.SPID))||'.TRC'
----------------------------------------------------------------------------------
E:\ORACLE\PRODUCT\10.2.0\ADMIN\MYORACLE\UDUMP\myoracle_ora_3708.trc

 
追踪文件的名字为myoracle_ora_3708.trc。
 

生成TKPROF报告

在命令行提示符下,执行:

C:\>tkprof E:\ORACLE\PRODUCT\10.2.0\ADMIN\MYORACLE\UDUMP\myoracle_ora_3708.trc c:\tk.prof
 
TKPROF: Release 10.2.0.1.0 - Production on 星期一 3月 19 22:44:44 2007
 
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
 
C:\>

 
生成的报告文件存储在C盘,文件名称为:tk.prof

阅读TKPROF报告

这是一个文本文件,可以通过记事本或者EditPlus工具打开,阅读.报告的内容很长,需要自己阅读,下面截取一部分:
 

select count(*)
from
 oe. seagal _orders where customer_id=118
 
 
call     count       cpu    elapsed       disk      query    current        rows
------- ------  -------- ---------- ---------- ---------- ----------  ----------
Parse        1      0.00       0.00          0         74          0           0
Execute      1      0.00       0.00          0          0          0           0
Fetch        2      0.10       0.11          0      10360          0           1
------- ------  -------- ---------- ---------- ---------- ----------  ----------
total        4      0.10       0.11          0      10434          0           1
 
Misses in library cache during parse: 1
Optimizer mode: ALL_ROWS
Parsing user id: SYS
 
Rows     Row Source Operation
-------  ---------------------------------------------------
      1  SORT AGGREGATE (cr=10360 pr=0 pw=0 time=114189 us)
  32768   TABLE ACCESS FULL MYORDERS (cr=10360 pr=0 pw=0 time=131132 us)
 
 
Elapsed times include waiting on following events:
  Event waited on                             Times   Max. Wait  Total Waited
  ----------------------------------------   Waited  ----------  ------------
  SQL*Net message to client                       2        0.00          0.00
  SQL*Net message from client                     2        0.00          0.00
********************************************************************************

 
这部分就是刚才执行的查询语句的执行分析报告,理解这个报告需要首先了解一些基本的设置:
查询的三个主要阶段为:
1.         分析(Parse):此阶段是Oracle在共享池中找到该查询(软分析)或创建该查询的新计划(硬分析)的所在。
2.         执行(Execute):此阶段是由Oracle在该查询的OPEN或者EXECUTE语句中做的工作。对于SELECT语句,在许多情况下此阶段为空。对于UPDATE语句,此阶段将是执行所有工作的所在。
3.         提取(Fetch):对于SELECT语句,大多数工作将在此阶段进行。对于UPDATE语句,将不显示任何工作(因为不从更新操作中提取)。
在报告的顶部可以看到的一些信息说明:
 
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
 
解释如下:
l  计数(Count)――查询在此阶段执行的次数。
l  CPU(cpu)――该查询在此阶段花费的CPU时间量,以毫秒为单位。
l  占用时间(Elapsed)――花费在此阶段的挂钟时间。当花费的时间大于CPU时间时,就意味着为某些事件耗费了等待时间。
l  磁盘(Disk)――查询在此阶段中执行物理IO的次数。
l  查询(Query)――检索一致方式时执行逻辑IO的次数。那些块是从回滚段中重构的块。如果在查询开始时它们存在就可以看到。
l  当前(current)――到目前为止检索块时所执行的逻辑IO的次数。
l  行(Row)――此阶段中被处理或者受影响的行数。在更改操作中,将看到Exceute阶段的Rows值。在SELECT查询中,该值出现在Fetch阶段。
 
在报告中还可以看到一些信息:
Cr――表示为一致方式读取,显示一致读取数(逻辑IO)
R――物理读取
W――物理写
Time――以百万分之一秒计数的时间占用,即us秒(微秒) 
分享到:
评论

相关推荐

    使用TKPROF 工具分析跟踪文件

    实验环境:VmWare Server 1.0.4+RHEL as 4+Oracle 10g 10.2.0.1.0 实验场景: Tkprof 是一个用于分析Oracle 跟踪文件并且产生一个更加清晰合理的输出结果的可执行工具。如果一个 系统的执行效率比较低,一个比较好的...

    Oracle跟踪文件分析工具TKPROF使用简介[文].pdf

    Oracle跟踪文件分析工具TKPROF使用简介[文].pdf

    使用 Tkprof 分析 ORACLE 跟踪文件

    使用 Tkprof 分析 ORACLE 跟踪文件,通过这个文档,告诉大家如何使用tkprof这个工具。

    让Oracle跑得更快 Oracle 10g性能分析与优化思路.part2.rar

    10.2 tkprof工具 256 10.3 10046事件 268 第11章 10053事件 276 第12章 性能视图和性能参数 294 12.1 性能视图 294 12.1.1 v$sql 295 12.1.2 v$sql_shared_cursor 300 12.1.3 v$session 305 12.1.4 v$sessstat 309 ...

    Tkprof工具介绍和分析

    Tkprof工具介绍和分析 kprof是一个用于分析Oracle跟踪文件并且产生一个更加清晰合理的输出结果的可执行工具。如果一个系统的执行效率比较低,一个比较好的方法是通过跟踪用户的会话并且使用Tkprof工具使用排序功能...

    让Oracle跑得更快 Oracle 10g性能分析与优化思路.part1.rar

    10.2 tkprof工具 256 10.3 10046事件 268 第11章 10053事件 276 第12章 性能视图和性能参数 294 12.1 性能视图 294 12.1.1 v$sql 295 12.1.2 v$sql_shared_cursor 300 12.1.3 v$session 305 12.1.4 v$sessstat 309 ...

    Tidy 代替tkprof,Oracle Trace 跟踪文件格式化工具

    Oracle Ebs官方工具Tidy 代替tkprof,Oracle Trace 跟踪文件格式化工具,可观测语句绑定变量的值。

    大牛出手Oracle SQL优化实例讲解

    6.sql trace分析工具--TKPROF详细讲解 7.V$SQL视图详解加几个实例 8.autotrace验证压缩表性能 9.autotrace验证消除子查询后的性能 10.基于基本的优化CBO 11.如何统计数据库数据 12.Oracle如何统计操作系统数据 13./*...

    tkprof介绍

    tkprof介绍,简要介绍了tkprof的原理和方法。

    Oracle高性能SQL调整

    理解SQL调整在Oracle总体微调中地地位,使用诸如内嵌视图和BIF扩展提高Oracle SQL性能,确定并报告程序库缓存中的SQL语句,调整SQL表访问、完整表扫描和平行查询,运行TKPROF获得SQL跟踪报告,使用Oracl 资源太大,...

    tkprof格式详解

    详解tkprof转换后的文件格式,用于SQL语句的分析和性能调优

    Oracle性能优化方法(SQL篇)

    1.如何分析SQL语句 2.选用适合的ORACLE优化器 3.用EXPLAIN PLAN 分析SQL语句 4.使用TKPROF 工具来查询SQL性能状态 5.表分区的应用

    《Oracle高性能SQL调整》

    理解SQL调整在Oracle总体微调中的地位,使用语如内嵌视图和BIF扩展提高QraleSQL性能,确定并报告程序库缓存中的SQL语句,调整SQL表访问、完整表扫描和平行查询,运行TKPROF获得SQL跟踪报告,使用Oracle线索为Oracle...

    ORACLE9i_优化设计与系统调整

    §10.13.8 使用ORACLE 诊断工具 126 第三部分 ORACLE应用系统开发优化 128 第11章 诊断与调整工具- 128 §11.1 警告日志文件 128 §11.1.1 警告日志文件管理 128 §11.1.2 参考警告日志文件调整 128 §11.2 后台进程...

    oracle高性能sql调整(全)

    理解SQL调整在Oracle总体微调中地地位,使用诸如内嵌视图和BIF扩展提高Oracle SQL性能,确定并报告程式库缓存中的SQL语句,调整SQL表访问、完整表扫描和平行查询,运行TKPROF获得SQL跟踪报告,使用Oracle线索 ...

    oracle高性能sql调整

    理解SQL调整在Oracle总体微调中地地位,使用诸如内嵌视图和BIF扩展提高Oracle SQL性能,确定并报告程式库缓存中的SQL语句,调整SQL表访问、完整表扫描和平行查询,运行TKPROF获得SQL跟踪报告,使用Oracle线索 ...

    oracl10G10.2.0版本在win7上的安装总结

    oracl10G10.2.0版本在win7上的安装注意事项,连接不上数据库,执行不了sqlplus

    oracle 10.2.0.1 精简客户端.msi.zip

    1、本软件可作为简单的Oracle10g客户端使用,包括:tnsping、exp、imp、sqlldr、sqlplus、tkprof(新增)等功能,如对客户端功能有更高的使用要求,请安装官方Oracle客户端。 2、本软件安装后,连接oracle服务器时...

    Oracle数据库管理员技术指南

    8.5.4 使用 tkprof 解释跟踪文件 8.5.5 使用 AUTOTRACE 获得 SQL 语句 执行计划和统计数据 8.6 优化回退段 8.6.1 最小化回退段争用 8.6.2 使动态扩充最小化 8.6.3 分布回退段的 I/O 8.7 优化索引 8.7.1 怎样...

Global site tag (gtag.js) - Google Analytics