跟踪文件的位置
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.52php.cn/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.aspzz.cn/article/39931.htm 转http://blog.chinaunix.net/uid-26922071-id-4033774.html 转http://www.52php.cn/article/p-aflucwpq-bhv.html 转http://blog.itpub.net/17252115/viewspace-751541/ (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|