您的位置:首页 > 数据库 > Oracle

oracle 10046事件 调试级别

2016-12-01 11:12 399 查看
Extended SQL trace(10046事件),是oracle公司提供给开发或者DBA的关键服务之一,若使用10046事件必须开启debug模式

LevelDescription
0禁止启用debug调试
1开启debug调试.
SQL语句、响应时间、服务时间、处理的行数、逻辑读取次数、物理读和写、执行计划和一些额外的信息.
到了版本10.2之后,oracle会在当前游标关闭之后,将所有统计信息记录到trace文件中,这里记录的是它们的总和.
到了版本11.1,当游标第一次执行后,就将统计信息写入trace文件,统计信息仅和第一次的执行相关
4开启debug调试.
额外追加了绑定变量的信息. 主要包括数据类型、精度、以及用于每个执行的值
8开启debug调试.
追加等待时间. 主要包括等待的事件、等待时长和一些额外的等待信息.
16开启debug调试.
在版本11.1之后,追加将每次的执行计划都写入trace.
32开启debug调试.
在版本11.1之后,移除了执行计划的统计信息.
64开启debug调试.
在版本11.2.0.2之后,追加了在第一次执行后继续生成执行计划信息的判断,条件是当第一次执行的统计信息达不到分析要求,还有就是在收集Level-16的统计信息项消耗很大的情况下,也会重写执行计划
除了以上级别,还可以将多个执行计划合并,例如:

> Level 12 (4 + 8)      开启debug调试,并将绑定变量和等待信息写入trace.
> Level 28 (4 + 8 + 16) 开启debug调试,并将绑定变量和等待信息以及每次的执行计划写入trace.
> Level 68 (4 + 64)     开启debug调试,并将绑定变量和是否重写执行计划记录到trace中.


当你在使用dbms_monitor 或 dbms_session 扩展追踪你的sql语句时,对应的映射关系变为

> Level 4   waits=FALSE, binds=TRUE, plan_stat=’first_execution’
> Level 8   waits=TRUE, binds=FALSE, plan_stat=’first_execution’
> Level 16  waits=FALSE, binds=FALSE, plan_stat=’all_executions’
> Level 32  waits=FALSE, binds=FALSE, plan_stat=’never’
> Level 64  not available yet


通过上面的列表,你若想要继续在Level 64下使用dbms_monitor 或 dbms_session 选项,必须使用一下语句或者使用oradebug

alter session set events '10046 trace name context forever, level 64'
alter session set events 'sql_trace wait=false, bind=false, plan_stat=adaptive'
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  oracle dba