oracle set events

本文介绍了Oracle数据库中用于诊断的事件类型,特别是10046和10053事件的设置方法及其用途。10046事件用于跟踪SQL语句执行情况,而10053事件则用于追踪硬解析过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

-- set events 能够产生trace file 常用的event 有哪些呢?
ORALCE中的诊断事件,用来产生trace file,对数据库进行诊断。
这些Event types包括三大类:Dump eventsTrace eventsChange the behaviour
设置一个事件有三种途径:
through the event init parameter
alter session set event
oradebug(orambx on VMS)

在alter system 时可以dump datafile
如:
alter system dump datafile 5 block min 50 block max 55;
关于 dump one ore more blocks 参考《dump_datafile.sql》
比较常用的事件有10046 和 10053.

[@more@]

-- 如何查找当前会话的trace file?

select
u_dump.value || '/' ||
db_name.value || '_ora_' ||
v$process.spid ||
nvl2(v$process.traceid, '_' || v$process.traceid, null )
|| '.trc' "Trace File"
from
v$parameter u_dump
cross join v$parameter db_name
cross join v$process
join v$session
on v$process.addr = v$session.paddr
where
u_dump.name = 'user_dump_dest' and
db_name.name = 'db_name' and
v$session.audsid=sys_context('userenv','sessionid');

-- 如何设置10046事件?
10046事件用来跟踪SQL语句,比较常用,功能类似于sql_trace=true ;
其level参数含义如下:
1: Standard SQL tracing
4: Level 1 + tracing bind variables
8: Level 1 + tracing wait events
12: Level 4 + Level 8 (SQL tracing, bind vars and wait events)
使用例子:
alter session set events '10046 trace name context forever, level 4';
其结果是在udump目录下产生一个日志文件,从日志文件中可以看出SQL bind variable的情况。

oracle10g中增加了一个视图可以更方便地查看bind variable. v$sql_bind_capture

结束事件
SQL> alter session set events '10046 trace name context off';


-- 如何使用10053 事件?
SQL> alter session set events '10053 trace name context forever, level 1';

会话已更改。

-- 运行一些能产生硬解析的语句
SQL> select count(1) from user_tables where table_name like '%DYHSB%';

COUNT(1)
----------
13

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

-- 到udump目录下找产生的日志文件,如果没有硬解析发生,就不会产生日志

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/271063/viewspace-1013213/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/271063/viewspace-1013213/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值