启用 Oracle 10046 调试事件

    Oracle 10046是一个Oracle内部事件。最常用的是在Session级别设置sql_trace(alter session set sql_trace=true)即是开启了级别为1
的10046调试事件。当设置了10046事件之后,Oracle 将产生一个dump文件。通过得到的dump文件进行进一步分析,可以得到Oracle 内部执行系
统解析、调用、等待、绑定变量等详细的trace信息,对于分析系统的性能有着举足轻重的作用。

 

一、10046事件的相关参数
  该事件需要设置一些参数以控制dump文件的输出:  
  TIMED_STATISTICS
    用于控制计时信息,可以设定为true和false。当设定为true时,计时信息将会被添加到trace文件中。
  
  MAX_DUMP_FILE_SIZE
    用于控制trace文件的最大尺寸。当使用10046事件时,建议将该参数设定为unlimited。
  
  USER_DUMP_DEST
    用于设定trace文件写入到哪个文件目录
  
  STATISTICS_LEVEL
    用于控制统计信息的收集度。此参数有3个选择,baisc,typical,all。
    basic:仅收集满足trace所需的最基本的信息,象Timed statistics,Object level statistics,以及一些advisory会被忽略。
    typical:此为缺省值。此设置将在basic的基础上增加一些额外的统计信息,象操作系统耗用时间的统计信息,执行计划的统计信息都会被收集
    all:当设置为all时,所有与该session相关的信息全部会被收集。
  
  TRACEFILE_IDENTIFIER
    用于设置识别Trace文件的字符串,便于更快捷的找到生成的Trace文件。

  以上参数可以基于系统级别以及会话级别进行修改。
    ALTER SESSION/SYSTEM SET timed_statistics=true
    ALTER SESSION/SYSTEM SET max_dump_file_size=unlimited
    ALTER SESSION SET tracefile_identifier='trace_sql_example'   -->仅session级别
    
  为特定的session动态设定trace相关参数,借助DBMS_SYSTEM包
     sys.DBMS_SYSTEM.set_bool_param_in_session( &sid
                                              , &serial
                                              , 'timed_statistics'
                                              , TRUE );
     sys.DBMS_SYSTEM.set_int_param_in_session( &sid
                                             , &serial
                                             , 'max_dump_file_size'
                                             , 2147483647 );  
  
二、10046调试事件的等级
  10046调试事件可以分为多个不同的等级,不同的等级输出不同的trace信息。
  等级   作用
  0      禁止调试事件
  1      调试事件处于激活状态。针对每个被处理的数据库调用,输出SQL语句,APPNAME(应用程序名),PARSING IN CURSOR,PARSE ERROR(SQL解析)
      ,EXEC(执行),FETCH(获取数据),UNMAP,SORT UNMAP(排序,临时段),ERROR,STAT(执行计划),XCTEND(事务)等行。
  4      包括等级1的输出,加上BIND行(绑定变量信息)
  8      包括等级1的输出,加上WAIT行(等待事件信息)。对于处理过程中的每个等待,提供如下信息:等待时间的名字,持续时间,以及一些额外
         的参数,可表明所等待的资源。
  12     输出等级4以及等级8的所有信息

 

三、激活10046调试事件

  4.基于组件级别与数据库级别的跟踪(略) 参考:http://docs.oracle.com/cd/E11882_01/appdev.112/e10577/d_monitor.htm

 

四、演示10046调试事件 

五、更多参考      

启用用户进程跟踪

父游标、子游标及共享游标

绑定变量及其优缺点

dbms_xplan之display_cursor函数的使用

dbms_xplan之display函数的使用

执行计划中各字段各模块描述

使用 EXPLAIN PLAN 获取SQL语句执行计划

启用 AUTOTRACE 功能

函数使得索引列失效

Oracle 绑定变量窥探

 

posted @ 2012-02-24 14:26  生活不是用来挥霍的  阅读(1501)  评论(0编辑  收藏  举报