Oracle Event 10046 |
发布时间: 2012/9/3 17:09:19 |
下面是一个10046的例子,可以用来分析具体的一些sql执行计划,做个记录! 设置10046事件来进行SQL跟踪,可以设置不同的跟踪级别 Level 0 停用SQL跟踪,相当于SQL_TRACE=FALSE Level 1 标准SQL跟踪,相当于SQL_TRACE=TRUE Level 4 在level 1的基础上增加绑定变量的信息-
Level 12 在level 1的基础上增加绑定变量和等待事件的信息
启用跟踪事件10046 10046事件由于跟踪的事件不同,生成的文档的目录也不相同,跟踪用户会话(trace文件位于USER_DUMP_DEST ),跟踪background进程(trace文件位于BACKGROUND_DUMP_DEST )。 1.在全局设置 修改初始化参数 EVENT = "10046 trace name context forever, level 8" 2.在当前session设置 alter session set events '10046 trace name context forever, level 8'; alter session set events '10046 trace name context off'; 测试实例 SQL> set serverout on; Session altered --为了查看生产文件省事,设置一个添加名称 SQL> alter session set tracefile_identifier='yuzh'; Session altered SQL>执行语句 执行结果 --查看结果所在目录 SQL> show parameter user_dump_dest; NAME TYPE VALUE --如果不设置别名,通过如下语句得到目标文件 TRACE_FILE_NAME
--如果设置了别名,其实上述语句得出的文件也还是可用的,不过还是使用别名文件最好,文件名称如下 cndbs1t9_ora_17764_yuzh.trc
--直接解读可能比较困难,我们使用tkprof来解析一下 Oracle@shdb06t $ tkprof cndbs1t9_ora_17764_yuzh.trc 123.txt TKPROF: Release 10.2.0.4.0 - Production on Tue Aug 24 15:07:17 2010 Copyright (c) 1982, 2007, Oracle. All rights reserved.
--一般需调优的评估量就是disk query current 这三个指标
--关闭10046 alter session set events '10046 trace name context off'; 本文出自:亿恩科技【www.enkj.com】 |