ITPUX技术网

交流 . 资讯 . 分享
Make progress together!
Oracle数据库DBA高级工程师培训视频
Oracle数据库培训-备份恢复-性能优化-集群容灾
mysql数据库视频教程

Oracle SQL跟踪方法_Oracle数据库SQL语句跟踪与tkprof trace分析

内容发布:风哥| 发布时间:2014-1-15 17:15:35
Oracle SQL跟踪方法_Oracle数据库SQL语句跟踪与tkprof trace分析
在日常数据库维护中,经常会对SQL进行分析与跟踪,现在介绍oracle数据库常用sql跟踪方法与tkprof trace的分析,附件有PDF版的下载

110046事件跟踪
10046 事件主要用来跟踪SQL语句,它并不是ORACLE 官方提供给用户的命令,在官方文档上也找不到事件的说明信息。 但是用的却比较多,因为10046事件获取SQL的信息比SQL_TRACE 更多。 更有利于我们对SQL的判断。

110046跟踪级别介绍
Level 0   停用SQL跟踪,相当于SQL_TRACE=FALSE
Level 1   标准SQL跟踪,相当于SQL_TRACE=TRUE
Level 4   level 1的基础上增加绑定变量的信息
Level 8   level 1的基础上增加等待事件的信息
Level 12 level 1的基础上增加绑定变量和等待事件的信息

2打开10046跟踪

GRANT ALTER SESSION TO USER; --必须具有alter session权限
alter session set events '10046 trace name context forever,level 12';--当前用户设置
或者
init.ora文件中插入下面的行:
event = 10046 trace name context forever,level 12;
--为全局设置

3关闭10046跟踪:
alter session set events '10046 trace name context off';--关闭用户跟踪
该事件收集的信息也是放在trace文件中,查看trace文件的方法可以使用TKPROF 工具。
注:sql_trace10046设置代码跟踪只能针对本会话或者系统级进行会话跟踪,具体设置某个非本会话的跟踪需要采用oradebug或者dbms_system.set_ev或者dbms_monitor.session_trace_enable下面举例说明

详细请下载PDF格式:Oracle SQL跟踪方法_oracle数据库SQL语句跟踪与tkprof trace分析


Oracle SQL跟踪方法_Oracle数据库SQL语句跟踪与tkprof trace分析.jpg

4使用oradebug 生成10046 事件

2SQL语句跟踪sql_trace

3、使用oradebug跟踪SQL

4dbms_system(必须用sys用户执行)

5dbms_monitor

6dbms_support

7获得跟踪文件

8查看跟踪级别

9TKPROF 工具的使用方法

Tkprof是一个用于分析Oracle跟踪文件并且产生一个更加清晰合理的输出结果的可执行工具

如果一个系统的执行效率比较低,一个比较好的方法是通过跟踪用户的会话并且使用Tkprof工具使用排序功能格式化输出,从而找出有问题的SQL语句。

9.1Tkprof工具常用参数介绍:

filename1  指定的输入文件,可以是多个文件联起来。
Filename2  格式化输出文件。
SORT     在输出到输出文件前,先进程排序。如果省去,则按照实际使用的顺序输出到文件中。一般使用fchela  elapsed time fetching
PRINT        只列出输出文件的第一个integer SQL语句。默认为所有的SQL语句。
SYS         禁止或启用 将SYS用户所发布的SQL语句列表到输出文件中。
TABLE       在输出到输出文件前,用于存放临时表的用户名和表名。
EXPLAIN     对每条SQL 语句确定其执行规划。并将执行规划写到输出文件中。
AGGREGATE    如果= NO ,则不对多个相同的SQL进行汇总。
INSERT       SQL 语句的一种,用于将跟踪文件的统计信息存储到数据库中。在TKPROF创建脚本后,在将结果输入到数据库中。

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


9.2Tkprof命令输出的相关参数说明:

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

9.3Tkprof使用介绍

--使用tkprof分析trace文件

tkprof /oracle/admin/trace/orcdb_ora_1380.trc /oracle/orcdb_ora_1380.trc aggregate=yes sys=no waits=yes sort=fchela
这样,格式化的后就输出到/oracle/orcdb_ora_1380.trc中。

9.4TkprofSQL_TRACE结合分析CPU占用比较高的SQL

9.5tkprof参数介绍
C:\Users\Administrator.ZGC-20120424GFY>tkprof
Usage: tkprof tracefile outputfile [explain= ] [table= ]
              [print= ] [insert= ] [sys= ] [sort= ]
  table=schema.tablename   Use 'schema.tablename' with 'explain=' option.
  explain=user/password    Connect to ORACLE and issue EXPLAIN PLAN.
  print=integer    List only the first 'integer' SQL statements.
  aggregate=yes|no
  insert=filename  List SQL statements and data inside INSERT statements.
  sys=no           TKPROF does not list SQL statements run as user SYS.
  record=filename  Record non-recursive statements found in the trace file.
  waits=yes|no     Record summary for any wait events found in the trace file.
  sort=option      Set of zero or more of the following sort options:
    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

详细请下载PDF格式:Oracle SQL跟踪方法_Oracle数据库SQL语句跟踪与tkprof trace分析








Oracle SQL跟踪方法_Oracle数据库SQL语句跟踪与tkprof trace分析.pdf

155.48 KB, 下载次数: 67, 下载积分: IT币 -1

售价: 15 IT币  [记录]

Oracle SQL跟踪方法_Oracle数据库SQL语句跟踪与tkprof trace分析



上一篇:Oracle数据库备份恢复Data Pump Expdp/Impdp参数详解与案例介绍
下一篇:Linux平台安装Oracle 10g RAC ASM详细过程Step by Step
189070296,150201289

专业提供Oracle数据库服务、主机、存储、备份、中间件等相关技术支持服务,QQ号:176140749
关注ITPUX技术网微信公众号itpux_com  ,了解本站最新技术资料的分享.

欢迎加QQ群,提供超多高质量Oracle/Unix/Linux技术文档与视频教程的下载。

Oracle/MySQL/Linux群4-5:189070296  150201289  
Oracle/MySQL/Linux群6-8:244609803   522261684   522651731
备注:请勿重复加群,另请注明 from itpux

加群分享视频教程部分如下:

1、公开课视频:Oracle/MySQL数据库工程师职业发展前景讲解(免费)
http://edu.51cto.com/course/7015.html

2、51CTO学院Oracle数据库高级工程师培训(高薪就业.课程介绍)
http://edu.51cto.com/px/train/131?xiaotu

3、Oracle DBA数据库高级工程师培训视频课程1.1(系列78套+七大阶段+上千案例)
套餐视频地址: http://edu.51cto.com/topic/1121.html

4、MySQL数据库(终身门徒)套餐:http://edu.51cto.com/sd/1e1a6

回复

使用道具 举报

内容发布:sy7527951| 发布时间:2016-12-25 23:57:22
不错,顶一个~~~~~~~
回复 支持 反对

使用道具 举报

内容发布:smile3933| 发布时间:2015-6-18 17:00:06
在日常工作有时候还是会用到,学习一下,谢谢分享~!
回复 支持 反对

使用道具 举报

内容发布:lljss| 发布时间:2015-2-3 17:00:13
学习了,感谢分享.
回复 支持 反对

使用道具 举报

内容发布:cary| 发布时间:2014-1-15 22:20:40
:lol不错,顶一个!
回复 支持 反对

使用道具 举报

1框架
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表