【README】 昨天在验证oracle 数据库性能的时候,查询日志中 打出了 exec time , fetch time 不懂什么意思,所以就记录了下;

A 表 680w, count 耗时5秒;

B表 2013w, count 耗时10秒;

A inner join B 连表查询 100 个客户, 耗时  0.036/0.756秒 exec/fetch 返回 470条记录;

A inner join B 连表查询 500 个客户, 耗时  0.138/3.382秒 exec/fetch 返回 2300条记录;

转自: https://blog.csdn.net/tianlesoftware/article/details/5632003

Tkprof是一个用于分析Oracle跟踪文件并且产生一个更加清晰合理的输出结果的可执行工具。如果一个系统的执行效率比较低,一个比较好的方法是通过跟踪用户的会话并且使用Tkprof工具使用排序功能格式化输出,从而找出有问题的SQL语句。

一. TKPROF 命令语法:
TKPROF  filename1, filename2 [ SORT  = [ opion][,option] ]
  [  PRINT = integer ]
  [ AGGREGATE  = [ YES | NO ] ]
  [ INSERT = filename3 ]
  [ SYS = [ YES | NO ]  ]
  [  [ TABLE = schema.table ] | [ EXPLAIN = user/password ]  ]
  [  RECORD = filename ]

相关说明:
filename1  指定的输入文件,可以是多个文件联起来。
Filename2  格式化输出文件。
SORT     在输出到输出文件前,先进程排序。如果省去,则按照实际使用的顺序输出到文件中。排序选项有以下多种:
  prscnt  number of times parse was called
  prscpu  cpu time parsing
  prsela  elapsed time parsing
  prsdsk  number of disk reads during parse
  prsqry  number of buffers for consistent read during parse
  prscu   number of buffers for current read during parse
  prsmis  number of misses in library cache during parse
  execnt  number of execute was called
  execpu  cpu time spent executing
  exeela  elapsed time executing
  exedsk  number of disk reads during execute
  exeqry  number of buffers for consistent read during execute
  execu   number of buffers for current read during execute
  exerow  number of rows processed during execute
  exemis  number of library cache misses during execute
  fchcnt  number of times fetch was called
  fchcpu  cpu time spent fetching
  fchela  elapsed time fetching
  fchdsk  number of disk reads during fetch
  fchqry  number of buffers for consistent read during fetch
  fchcu   number of buffers for current read during fetch
  fchrow  number of rows fetched
  userid  userid of user that parsed the cursor

PRINT        只列出输出文件的第一个integer 的SQL语句。默认为所有的SQL语句。
AGGREGATE    如果= NO ,则不对多个相同的SQL进行汇总。
INSERT       SQL 语句的一种,用于将跟踪文件的统计信息存储到数据库中。在TKPROF创建脚本后,在将结果输入到数据库中。
SYS         禁止或启用 将SYS用户所发布的SQL语句列表到输出文件中。
TABLE       在输出到输出文件前,用于存放临时表的用户名和表名。
EXPLAIN     对每条SQL 语句确定其执行规划。并将执行规划写到输出文件中。

其中比较有用的一个排序选项是fchela,即按照elapsed time fetching来对分析的结果排序(记住要设置初始化参数timed_statistics=true),生成的文件将把最消耗时间的sql放在最前面显示。另外一个有用的参数就是sys,这个参数设置为no可以阻止所有以sys用户执行的sql被显示出来,这样可以减少分析出来的文件的复杂度,便于查看。

二. 对Tkprof命令输出的解释:

首先解释输出文件中列的含义:
CALL:每次SQL语句的处理都分成三个部分
Parse:这步将SQL语句转换成执行计划,包括检查是否有正确的授权和所需要用到的表、列以及其他引用到的对象是否存在。
Execute:这步是真正的由Oracle来执行语句。对于insert、update、delete操作,这步会修改数据,对于select操作,这步就只是确定选择的记录。
Fetch:返回查询语句中所获得的记录,这步只有select语句会被执行。
COUNT:这个语句被parse、execute、fetch的次数。
CPU:这个语句对于所有的parse、execute、fetch所消耗的cpu的时间,以秒为单位。
ELAPSED:这个语句所有消耗在parse、execute、fetch的总的时间。
DISK:从磁盘上的数据文件中物理读取的块的数量。一般来说更想知道的是正在从缓存中读取的数据而不是从磁盘上读取的数据。
QUERY:在一致性读模式下,所有parse、execute、fetch所获得的buffer的数量。一致性模式的buffer是用于给一个长时间运行的事务提供一个一致性读的快照,缓存实际上在头部存储了状态。
CURRENT:在current模式下所获得的buffer的数量。一般在current模式下执行insert、update、delete操作都会获取buffer。在current模式下如果在高速缓存区发现有新的缓存足够给当前的事务使用,则这些buffer都会被读入了缓存区中。
ROWS: 所有SQL语句返回的记录数目,但是不包括子查询中返回的记录数目。对于select语句,返回记录是在fetch这步,对于insert、update、delete操作,返回记录则是在execute这步。

转:使用 Tkprof 分析 ORACLE 跟踪文件相关推荐

  1. 使用 Tkprof 分析 ORACLE 跟踪文件

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

  2. Oracle跟踪文件trace文件

    一.Oracle跟踪文件         Oracle跟踪文件分为三种类型,一种是后台报警日志文件,记录数据库在启动.关闭和运行期间后台进程的活动情况,如表空间创建.回滚段创建.某些alter命令.日 ...

  3. oracle技术之Oracle 跟踪事件(一)

    一.Oracle跟踪文件 Oracle跟踪文件分为三种类型,一种是后台报警日志文件,记录数据库在启动.关闭和运行期间后台进程的活动情况,如表空间创建.回滚段创建.某些alter命令.日志切换.错误消息 ...

  4. awk oracle,工具: ass109.awk 分析 Oracle 的跟踪文件

    工具: ass109.awk 分析 Oracle 的跟踪文件 ass109.rar 通过ass109.awk文件,可以很容易将trace文件里的内容理出脉络来,清晰的发现问题所在,土了这么多年. 解析 ...

  5. 看懂oracle trc文件,oracle 的 debug 工具 和 分析 trc 文件工具 ass.awk

    oracle的dump工具和分析trc文件工具ass.awk 之前介绍了oracle的一个hang住时的一个分析工具hanganalyze,这里再引入另外的一个工具,分析系统进程和单个进程的工具 1. ...

  6. 解析oracle追踪文件,解析listener跟踪文件

    在上篇<监听器控制程序lsnrctl跟踪trace file>(http://space.itpub.net/17203031/viewspace-713587)中,我们探讨了如何获取到监 ...

  7. oracle 清理跟踪文件.trc .trm

    trc,trm文件介绍: trc:系统的跟踪文件(trace),当系统启动时或运行过程中出现错误时,系统会自动记录跟踪文件到指定的目录,以便于检查,这些文件需定期维护删除. trm:伴随着.trc文件 ...

  8. oracle 清理跟踪文件trc,trm

    oracle的日志文件有以下几种: 警告日志,trace日志,audit日志,redo日志,归档日志 a.警告日志:也就是alert log,使用初始化参数 show parameter backgr ...

  9. ORACLE的跟踪文件

    Oracle必须设置SQL_TRACE=true或者通过10046事件扩展跟踪工具生成: alter session set events '10046 trace context forever,l ...

最新文章

  1. python dos攻击_利用SMB漏洞DoS攻击任何Windows系统
  2. 对计算机技术的发展方向研究,网络技术发展对计算机技术的影响
  3. 软件级负载均衡器(LVS/HAProxy/Nginx)的特点简介和对比
  4. iOS多线程的初步研究(十)-- dispatch同步
  5. c++ template(8)模版多态
  6. [转载] python与c/c++相比有哪些优势
  7. 改善深层神经网络:超参数调整、正则化以及优化——2.7 RMSprop
  8. Win11正式版版号 Win11正式版最新版本号介绍
  9. c语言课程设计物业管理,C语言-小区物业管理-实验报告
  10. 机器学习笔记(二十四):召回率、混淆矩阵
  11. 手机定位浅析 AGPS定位 LBS基站定位 卫星定位
  12. linux raid 监控,如何使用CentOS 6监控Dell PERC H710 Raid控制器背后的硬盘状态?
  13. 博科交换机常用操作命令
  14. jsp实现一个简单的登陆界面(不连数据库)
  15. 蟠桃会之教育、投资与幸福生活
  16. 22 《巴黎文学散步地图》 -豆瓣评分7.8
  17. 平行四边形符号怎么打?
  18. Y05 - 017、猜小埋年龄游戏
  19. 【Flask】篇一:Error: Failed to find Flask application or factory in module “学习用“. Use “FLASK_APP=学习用:nam
  20. 中秋节祝福html,中秋节祝福短语(人人点赞的中秋节祝福语)

热门文章

  1. 剑指 Offer 38. 字符串的排列(有重复元素的排列)
  2. 2020牛客国庆集训派对day1 C. Bob in Wonderland
  3. 牛客网 【每日一题】5月29日 管道取珠
  4. AT4144-[ARC098D]Donation【Kruskal重构树,dp】
  5. jzoj3348,bzoj3258-秘密任务【最短路,网络流最小割】
  6. P3076,jzoj3187-的士【贪心】
  7. jzoj3913-艰难的选择【差分,统计】
  8. 2021牛客暑期多校训练营4 B-Sample Game(概率DP)
  9. 【图论】【模板】静态仙人掌(luogu 5236)
  10. 【dfs】I Like Matrix!