跟踪会话的级别
Level 1:跟踪SQL语句,等于sql_trace=true
Level 4:包括变量的详细信息
Level 8:包括等待事件
Level 12:包括绑定变量与等待事件
16 在11g中为每一次执行生成STAT信息,仅在11.1之后可用
32 比level 1少执行计划
64 和level 1 相比 在第一次执行后还可能生成执行计划信息 ; 条件是某个游标在前一次执行的前提下 运行耗时变长了一分钟。仅在 11.2.0.2中可用
Level 28 (4 + 8 + 16) 代表 同时启用 level 4 、level 8、level 16
level 68 ( 64 + 4 ) 代表 同时启用 level 64、level 4
当前会话
1.开启10046跟踪
alter session set events ‘10046 trace name context forever,level 12’;
2.设置trace的标识
alter session set tracefile_identifier=‘feng’
3.执行sql
xxxxxxx
4.关闭10046跟踪
alter session set events ‘10046 trace name context off’;
5.定位此次的trace文件位置
select distinct(m.sid),p.pid,p.tracefile from v
m
y
s
t
a
t
m
,
v
mystat m,v
mystatm,vsession s,v$process p where m.sid=s.sid and s.paddr=p.addr;
6.输出
tkprof orcl_ora_3576_feng.trc orcl_ora_3576_feng.txt
其他会话
查出spid和pid
select spid,pid from v$process where addr in (select paddr from v$session where sid=(要查的sid));
SPID PID
—— ——
57994 63
选定spid
Oradebug setospid 57994
取消对trace文件大小的限制
Oradebug unlimit;
开启10046
oradebug event 10046 trace name context forever,level 12;
查看trace地址
oradebug tracefile_name;
转化trace文件
tkprof orcl_ora_3576_feng.trc orcl_ora_3576_feng.txt
关闭10046(一定要关闭)
Oradebug event 10046 trace name context off;
参数介绍
count = OCI过程执行的次数
CPU = CPU时间,以秒为单位执行
Elapsed =以秒为单位的执行时间
Disk =从磁盘读取缓冲区的物理次数
Query =为一致性读取而获得的缓冲区数量
Current =在当前模式下获得的缓冲区数量(通常用于更新)
Rows =由取回或执行调用处理的行数
例子:
部分内容
递归深度2。(如果为0就是非递归sql。来自外部(普通SQL)还来自数据库本身(递归SQL)。jdbc也算非递归。
总体所有递归语句汇总和 非递归语句汇总