Oracle 10046事件相关

[事件级别]
注1:10046事件并不是ORACLE官方提供给用户的使用命令,在官方文档上找不到这个事件的说明。
10046事件按照收集的信息内容,可以分成4个级别:

  • Level 0 Tracing is disabled. This is the same as setting SQL_TRACE = FALSE.
  • Level 1 等同于SQL_TRACE的功能。
    Level 1 Standard SQL trace information (SQL_TRACE = TRUE). This is the default level.
  • Level 4 在Level 1的基础上增加收集绑定变量的信息。
    Level 4 SQL trace information plus bind variable values.
  • Level 8 在Level 1的基础上增加等待事件的信息。
    Level 8 SQL trace information plus wait event information.
  • Level 12 等同于Level 4 + Level 8,即同时收集绑定变量信息和等待时间信息。
    Level 12 SQL trace information, wait event information, and bind variable values.

[命令参考]
日志标识
alter session set tracefile_identifier=’&TraceFile’;

查询会话
set lines 256
set pages 2000
col sid format 999999
col serial# format 999999
col dbuser format a15
col osuser format a15
col program format a20
col machine format a20
col event format a50
select sid,serial#,program,event,username dbuser,osuser,machine from v$session where username not in (‘DBSNMP’,‘SYSMAN’) order by program;

DBMS_SYSTEM方式[as sysdba权限]
exec dbms_system.set_ev(&SID,&SERIAL,10046,12,’’);
<Run your SQL here;>
exec dbms_system.set_ev(&SID,&SERIAL,10046,0,’’);

DBMS_MONITOR方式
exec dbms_monitor.session_trace_enable(&SID,&SERIAL,waits=>true,binds=>true);
<Run your SQL here;>
exec dbms_monitor.session_trace_disable(&SID,&SERIAL);

[简要分析]

  • Trace File
    在这里插入图片描述

注1:Oracle首先对这条SQL语句做分析,并且有一个游标号:CURSOR #231185624 ,这个号在整个trace文件中不是唯一的,当一条SQL语句执行完毕后,这个号会被另外的SQL语句重用。
注2:Parse执行2次,EXEC执行2次,FETCH执行2次。STAT #231185624 是对这条SQL语句执行过程中的资源消耗的统计,trace文件中信息的输出顺序就是SQL语句执行的顺序,通过这些顺序,就可以了解到SQL语句是如何一步一步地执行的。
注3:指标信息的解释:
Parsing in cursor 部分
len:被分析SQL的长度
dep:产生递归SQL的深度
uid:user id
otc:oracle command type命令的类型
lid:私有的用户id
tim:时间戳
hv:hash value
ad:SQL address

PARSE、EXEC、FETCH部分:
c:消耗的cpu time
e:elapsed time操作的用时
p:physical reads 物理读的次数
cr:consistent reads 一致性方式读取的数据块
mis:cursor miss in cache硬分析次数
r:-rows 处理的行数
dep:depth递归SQL的深度
og:optimizer goal优化器模式
tim:timstamp时间戳

STAT部分:
id:执行计划的行源号
cnt:当前行源返回的行数
pid:当前行源号的父号
pos:执行计划中的位置
obj:当前操作的对象id(如果当前行原始一个对象的话)
op:当前行源的数据访问操作

  • TKPROF格式化日志
    常用命令:
tkprof sourcefile destfile sys=no sort=fchela

在这里插入图片描述

注1:此SQL消耗CPU资源是0.00秒,总耗时0.03秒,物理读取了 0 个数据块,一致性读取了9个数据块,没有发生current方式的读取(通常是update操作时会发生),一共提取数据记录数为3.
注2:Misses in library cache during parse说明shared pool中命中了,说明这是一次软分析,硬分析是为1.
注3:Optimizer mode当前的CBO优化器模式是 ALL_ROWS。
注4:Parsing user id分析用户的ID。
注5:Rows 当前操作返回的实际返回记录数。Row Source Operation行源操作,表示当前操作的数据访问方式。
注6:cr - consistent read 一致性方式读取的数据块,相当于query列上Fetch步骤的值。
pr - Physical read 物理读取的数据块,相当于disk列上Fetch步骤的值。
pw - physical write 物理写。
time 当前操作执行的时间。

SQL_TRACE期间所有非递归SQL语句(NON-RECURSIVE STATEMENTS)的执行信息统计汇总,也就是用户本身的SQL消耗的资源情况。
在这里插入图片描述
SQL_TRACE递归SQL语句指的是执行一条SQL语句衍生出执行一些其他的SQL,这些衍生出来的SQL叫递归SQL语句。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值