Oracle sql_trace 10046事件 10053事件笔记

跟踪文件的位置

show parameter user_dump_dest

sql_trace分析步骤

1. 启用跟踪

alter session set sql_trace=true;

2.执行sql

select * from emp where id='id' ;

3.关闭跟踪

alter session set sql_trace=false;

4.查阅跟踪文件

在跟踪文件的位置找到跟踪文件,用下面的命令格式化输出sql.txt中

C:\>tkprof xxxx.trc sql.txt

格式化后的文件说明
解析(Parse):此阶段是Oracle的优化器为sql语句生成执行计划的阶段。
执行(Execute):此阶段是服务器进程按照执行计划执行语句的阶段。
抓取(Fetch):此阶段是服务器进程从表中抓取结果的阶段。只有 Select 语句才需要此阶段,Update、Insert、Delete等这些DML语句并不需要抓取行。
这个表格通常包括八列,这八列意义如下:
Call:说明了语句执行的每个阶段。
Count:此阶段的执行次数
cpu:完成此阶段工作所耗的 cpu时间,单位是毫秒。
Elapsed:完成此阶段工作所耗费的 cpu时间再加上等待的时间,单位也是毫秒。
disk:完成此阶段工作所用的物理读次数
Query:完成此阶段工作所用的一致读次数
Current:完成此阶段工作所用的当前读次数。Query 和 Current加起来就是逻辑读。
Rows:完成此阶段工作所操作的行数。
接下来一行:“Misses in library cache during parse:”说明硬解析的次数,本例中语句的执行进行了一次硬解析。
“Optimizer mode”是优化器模式
另外,我们在目标文件中还会发现大量的其他语句,注意,我们在跟踪其间,只执行了
一条sql语句,跟踪文件中其他的语句,其实就是所谓的递归调用。也就是为了完成我们的
语句,Oracle内部执行的一些其他的 sql语句。
通过观察跟踪文件的目标文件,我们可以观察到比较精确的 cpu时间、物理读逻辑读等
信息,这有助于我们了解一条 sql语句是否有效。

跟踪方法二:10046事件
我们用10046事件也能完成 sql跟踪,只需要将“alter session set sql_trace=true”
换成“alter session set events ‘10046 trace name context forever,level 1’”,
就可以完成一模一样的工作,这条语句也是开启sql 跟踪。结束跟踪的语句是:
alter session set events ‘10046 trace name context off’;

http://www.cnblogs.com/shenfeng/p/oracle_sql_trace.html
http://www.cnblogs.com/zhaoguan_wang/p/5127982.html
http://luoping.blog.51cto.com/534596/1097826/
http://blog.itpub.net/29320885/viewspace-1223962/
http://www.eygle.com/archives/2011/02/dba_event_10046_10053.html
http://www.jb51.cc/article/p-bcbaanpm-bmn.html
http://www.cnblogs.com/andy6/p/5846943.html
http://czmmiao.iteye.com/blog/1497509
http://blog.csdn.net/yuzhenhuan01/article/details/5834838
http://blog.itpub.net/519536/viewspace-216982/
http://www.2cto.com/database/201308/232838.html
http://www.docin.com/p-758931828.html
http://www.jb51.net/article/39931.htm
http://blog.chinaunix.net/uid-26922071-id-4033774.html
http://www.jb51.cc/article/p-aflucwpq-bhv.html
http://blog.itpub.net/17252115/viewspace-751541/

相关文章

Java Oracle 结果集是Java语言中处理数据库查询结果的一种方...
Java AES和Oracle AES是现代加密技术中最常使用的两种AES加密...
Java是一种广泛应用的编程语言,具备可靠性、安全性、跨平台...
随着移动互联网的发展,抽奖活动成为了营销活动中不可或缺的...
Java和Oracle都是在计算机领域应用非常广泛的技术,他们经常...
Java 是一门非常流行的编程语言,它可以运行于各种操作系统上...