- 浏览: 518980 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
u011165335:
distinct不影响使用半连接
(转)关于semi-join/anti-join的一点探讨 -
353790060:
redo 记录事务执行后的日志 undo 记录事务回滚的日志 ...
Oracle redo与undo浅析 -
jayxigua:
redo用于在失败时重放事务(即恢复事务),undo则用于取消 ...
Oracle redo与undo浅析 -
aa_qq110:
Openbravo有中文包吗
Openbravo开发手册 -
iocaop:
不错,写的很清晰易懂
JAVA 服务提供者框架介绍
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秒(微秒)
发表评论
-
Oracle事务原理探究2--读书笔记五
2015-01-05 13:46 1703续上篇... 3. 数据块访问与undo ... -
Oracle事务原理探究1--oracle核心技术读书笔记五
2014-12-29 21:18 20281. 冲突解决 假如有一个系统只有你和我两个 ... -
oracle undo 复杂度--oracle核心技术读书笔记四
2014-10-01 14:23 1288一. 概述 undo ... -
Oracle redo 复杂度--oracle核心技术读书笔记三
2014-09-29 22:13 1190一. 概述 我 ... -
(转)undo系列学习之Oracle IMU及Redo Private Strands技术
2014-09-27 23:09 1169原博客地址: http://blo ... -
oracle如何保证事务的ACID原则--oracle核心技术读书笔记二
2014-09-21 11:18 1785在事务中有四个通用的原则是所有数据库都必须遵守的,简称ACI ... -
Oracle基本数据改变原理浅析(redo与undo)--oracle核心技术读书笔记一
2014-09-14 17:00 4845在oracle中我们做一些更新操作,oracle底层是怎么流 ... -
(转)Oracle中Hint深入理解
2014-01-07 19:48 1217原文出处:http://czmmiao.iteye.com/ ... -
Oracle全表扫描成本示例
2013-12-29 22:51 0一. 准备工作 1. block size 8KB( ... -
(转)Oracle查看trace文件步骤
2013-12-10 09:54 5448原文地址: http://www.2cto.com/data ... -
【转】CBO hint:no_unnest,push_subq,push_pred的用法
2013-12-02 20:11 1266原博客地址:http://blog.itpub.net/15 ... -
index_stats视图各列的含义
2013-12-02 19:10 1403index_stats视图来收集B树 ... -
(转)Oracle 调整SGA、PGA大小
2013-10-31 13:25 31219SQL> show parameter sga; ... -
(转)Oracle cursor_sharing 参数 详解
2013-08-25 23:04 1991原博客地址:http://blog.csdn.net/tia ... -
(转)shared pool 原理
2013-08-18 22:58 1490原博客地址:http://blog.csdn.net/ro ... -
(转)Oracle 游标(cursor)说明
2013-08-15 20:17 1493原博客地址:http://blog.csdn.net/ti ... -
(转)关于semi-join/anti-join的一点探讨
2013-08-14 21:20 11010原博客地址:http://space.itpub.net ... -
oracle 索引访问方式
2013-07-29 23:02 1467一. 概述 index uni ... -
(转)Oracle动态性能视图学习笔记(2)_v$sesstat_v$mystat_v$statname
2013-07-29 21:41 1215原博客地址:http://space.itpub.net/1 ... -
(转)Oracle性能优化 之 共享池
2013-07-29 21:04 1268转载作品,原始出去如下: http://blog.ch ...
相关推荐
TKPROF是Oracle提供的一个命令行工具,用于分析Oracle数据库的跟踪文件,并产生一个更加清晰和合理的输出结果。它的主要作用是帮助数据库管理员和开发人员识别并优化数据库执行效率低下的SQL语句,因此对于Oracle...
考生需要掌握性能分析工具(如SQL Trace和TKPROF)、索引策略、查询优化器的工作原理、分区技术以及内存结构的调整,以便在实际工作中提升数据库性能。 通过这些考试,DBA可以展示他们在Oracle 10g数据库管理方面的...
3. **性能监控与优化**:Oracle 10g提供了强大的性能优化工具,如SQL Trace、TKPROF以及AWR(Automatic Workload Repository)。这部分内容会教授如何分析SQL执行计划,找出性能瓶颈,并通过索引、分区等技术进行...
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 ...
5. **性能优化**:提供了关于如何分析和优化数据库性能的指导,如使用SQL Trace和TKPROF工具进行性能调优,理解执行计划,以及使用数据库调优顾问(Database Tuning Advisor)。 6. **高可用性**:包括RAC(Real ...
Oracle 10g提供了丰富的性能监控工具,如V$视图、AWR(自动工作区管理报告)、ASH(活动会话历史)等。考生需要掌握如何分析性能问题,通过SQL Trace和TKPROF找出慢查询的原因,并进行优化。 六、高可用性与灾难...
Oracle10g包含各种性能优化工具,如SQL Trace、 tkprof 和AWR(自动工作区管理报告)。通过对这些工具的使用,可以分析并改进SQL语句的执行效率,提升数据库整体性能。 总之,《Oracle10g数据库基础教程》是一本...
这个"Oracle10g培训PPT"很显然是一份深入讲解Oracle 10g特性和使用的教学材料,内容全面且详尽。下面将根据这个主题,详细阐述Oracle 10g的一些核心知识点。 一、Oracle 10g简介 Oracle 10g的“g”代表“grid”,...
Oracle 10g手册中的"Ora+10G+SQL+Reference.chm"文件很可能专注于SQL语言参考,包含了SQL的所有语法、函数和操作符,是编写和理解SQL查询的强大工具。通过深入研究这个手册,读者可以掌握Oracle 10g数据库的精髓,...
《Oracle10g系统管理员使用手册》是一本深入解析Oracle10g数据库管理系统运维的权威指南,主要面向那些需要管理、监控和优化Oracle10g环境的系统管理员。Oracle10g是Oracle公司推出的数据库产品,它在性能、可扩展性...
DBA需要掌握如何使用Explain Plan、SQL Trace和 tkprof等工具来分析和改进SQL性能。 9. **数据库升级与迁移**:随着业务发展,数据库升级或迁移可能不可避免。手册将介绍如何从旧版本升级到Oracle 10g,以及数据...
5. **性能监控**:客户端还包含性能分析工具如 tkprof 和 trace 分析,帮助用户诊断和优化SQL查询性能。 6. **安全**:客户端支持身份验证和授权功能,如Oracle Wallet,用于管理和存储数据库连接的敏感信息。 ...
11. **性能监控和调优**:Oracle Database 10g提供了丰富的性能分析工具,如SQL Trace、TKPROF和AWR(Automatic Workload Repository),帮助管理员识别性能瓶颈并进行优化。 12. **安全性和审计**:Oracle10g提供...
根据提供的文件信息,“ORACLE DATABASE 11G性能优化攻略_高清_美 Sam R Alapati.pdf”,我们可以推断出这份文档主要讲述了Oracle Database 11g版本中的性能优化策略和技术。下面将从多个角度来深入探讨Oracle ...
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 ...
5. 性能优化:了解如何使用Explain Plan分析查询执行计划,使用SQL Trace和TKPROF工具定位性能问题,以及调整索引和统计信息。 6. 安全管理:掌握用户、角色、权限的管理,理解Oracle的默认安全设置,以及如何实现...
4. 性能优化:熟悉SQL性能分析工具,如 Explain Plan 和 TKPROF,以及如何使用索引、物化视图和分区来提高查询性能。了解如何调整初始化参数以优化数据库性能。 5. 安全性:理解Oracle的用户管理和权限控制机制,如...
10. **性能优化**:学习SQL优化,如使用EXPLAIN PLAN分析查询执行计划,以及通过调整表分区、索引和统计信息来提高查询性能。 11. **数据库设计**:掌握数据库设计原则,如范式理论(第一范式到第五范式),以及...
2. **性能优化**:Oracle 10g提供了强大的性能监控和调优工具,如SQL Trace、 tkprof 和 Automatic Workload Repository (AWR)。这些工具帮助DBA分析数据库性能,找出瓶颈,并制定优化策略。 3. **数据库安全性**:...