oracle 10046当前会话
**设置追踪标识符
alter session set tracefile_identifier='10046';**
开启跟踪
alter session set events '10046 trace name context forever, level 12';
执行语句
select count(*) from all_objects;
关闭10046追踪
alter session set events '10046 trace name context off';
当退出当前会话的时候,Oracle就会将追踪的结果写入到trace文件目录
使用Oracle提供的tkprof来格式化打开追踪文件,进行分析,如下:
tkprof ora_2229_10046.trc 888.trc
vim 888.trc
其中: 在打开10046时间的SQL Trace之前,要先设置好下面几个参数。
timed_statistics
这个参数决定了是否收集与时间相关的统计信息,如果这个参数为FALSE的话,那么SQL Trace的结果基本没有多大的用处,默认情况下这个参数设置为TRUE。
max_dump_file_size
dump文件的大小,也就是决定是否限制SQL Trace文件的大小,在一个很忙的系统上面做SQL Trace的话可能会生成很多的信息,因此最好在会话级别将这个参数设置成unlimited。
tracefile_identifier
给Trace文件设置识别字符串,这是个非常有用的参数,设置一个易读的字串能更快的找到Trace文件。
10046事件是对sql_trace的增强,可分4个级别,具体如下:
1)level 1:等价于sql_trace
2)level 4:level 1+绑定值
3)level 8:level 1+等待事件跟踪
4)level 12:等价于level 1+level 4+level 8
oracle 10046其他用户会话
授权
conn /as sysdba
grant execute on dbms_system to chen;
首先查看要跟踪用户的sid,serial#
select sid,serial#,username from v$session where username is not null;
开启跟踪
SQL>execute sys.dbms_system.set_ev(7,36,10046,12,'');
执行语句
create table aa(id number;
alter table aa add(sal number);
drop table aa;
关闭10046追踪
SQL>execute sys.dbms_system.set_ev(7,36,10046,0,'');
当退出当前会话的时候,Oracle就会将追踪的结果写入到trace文件目录
使用Oracle提供的tkprof来格式化打开追踪文件,进行分析,如下:
tkprof ora_2229_10046.trc 888.trc
vim 888.trc
文章来源:[[chenoracle]](http://blog.itpub.net/29785807/viewspace-1713415/)