Home  >  Article  >  Database  >  Oracle Event 10046

Oracle Event 10046

WBOY
WBOYOriginal
2016-06-07 17:12:00862browse

下面是一个10046的例子,可以用来分析具体的一些sql执行计划,做个记录!设置10046事件来进行SQL跟踪,可以设置不同的跟踪级别Le

下面是一个10046的例子,可以用来分析具体的一些sql执行计划,做个记录!

设置10046事件来进行SQL跟踪,可以设置不同的跟踪级别

Level 0   停用SQL跟踪,相当于SQL_TRACE=FALSE

Level 1   标准SQL跟踪,相当于SQL_TRACE=TRUE

Level 4   在level 1的基础上增加绑定变量的信息

Level 8   在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;
SQL> alter session set events '10046 trace name context forever, level 8';

Session altered

--为了查看生产文件省事,设置一个添加名称

SQL> alter session set tracefile_identifier='yuzh';

Session altered

SQL>执行语句

执行结果

--查看结果所在目录

SQL> show parameter user_dump_dest;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
user_dump_dest                       string      /u01/app/Oracle/admin/CNDBS1T9/udump

--如果不设置别名,通过如下语句得到目标文件
SQL> select d.value || '/' || lower(rtrim(i.instance, chr(0))) || '_ora_' ||p.spid|| '.trc' trace_file_name
  2           from (select p.spid
  3                from v$mystat m, v$session s, v$process p
  4               where m.statistic# = 1
  5                 and s.sid = m.sid
  6                 and p.addr = s.paddr) p,
  7             (select t.instance
  8                from v$thread t, v$parameter v
  9              where v.name = 'thread'
 10                and (v.value = 0 or t.thread# = to_number(v.value))) i,
 11            (select value from v$parameter where name = 'user_dump_dest') d;

TRACE_FILE_NAME
--------------------------------------------------------------------------------
/u01/app/oracle/admin/CNDBS1T9/udump/cndbs1t9_ora_17764.trc

 

--如果设置了别名,其实上述语句得出的文件也还是可用的,不过还是使用别名文件最好,文件名称如下

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.


oracle@shdb06t $ cat 123.txt

--一般需调优的评估量就是disk      query    current        这三个指标

 

--关闭10046

alter session set events '10046 trace name context off';

linux

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:Oracle logminer 使用总结Next article:DB2 db2mtrk用法总结