10046事件
Posted hhaahh
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了10046事件相关的知识,希望对你有一定的参考价值。
使用10046事件可以追踪数据库或者会话层面的sql执行情况,包括解析、执行、抓取的方式,耗用的资源、CPU时间,等待事件等影响sql执行的信息
下面就本人对其的理解和操作备注下,方便以后的复习,也希望其他朋友能够多多指点
一、启动10046前的检查
10046可以在会话层面和数据库系统层面执行;
1、必须确保timed_statistics为TRUE,这个参数可以在会话级上进行修改。当此会话为false时,收集的数据比较有限,所以必须设置相关参数来完善跟踪文件内容;
10046 trace相关参数
1. timed_statistics
timed_statistics这个参数决定了是否收集与时间相关的统计信息,如果这个参数为FALSE的话,那么SQL Trace的结果基本没有多大的用处,默认情况下这个参数设置为TRUE。
show parameter timed_statistics ;
ALTER SESSION SET timed_statistics=true ;
2. max_dump_file_size
max_dump_file_size这个参数指定dump文件的大小,也就是决定是否限制SQL Trace文件的大小,在一个很忙的系统上面做SQL Trace的话可能会生成很多的信息,因此最好在会话级别将这个参数设置成unlimited。
show parameter max_dump_file_size;
ALTER SESSION SET max_dump_file_size=unlimited ;
3. tracefile_identifier
tracefile_identifier这个参数给Trace文件设置识别字符串,是个非常有用的参数,设置一个易读的字串能更快的找到Trace文件。
show parameter tracefile_identifier;
ALTER SESSION SET tracefile_identifier=’my_trace_session’;
4. diagnostic_dest
diagnostic_dest这个参数11g新增的,用于控制存放trace文件与core文件的路径,默认是$ORACLE_BASE目录。
show parameter diagnostic_dest; 命令用于查看其目录
5. user_dump_dest
user_dump_dest参数指定用户进程trace文件目录。
show parameter user_dump_dest ; 命令可以产看其目录
alter system set user_dump_dest =‘/U01/app/oracle/diag/rdbms/masterdb/masterdb/trace‘ scope=both; 命令用于更改其目录
6. background_dump_dest
background_dump_dest参数用于后台进程产生的trace文件存储目录下。
show parameter background_dump_dest ; 命令可以查看其目录
alter system set background_dump_dest=‘/U01/app/oracle/diag/rdbms/masterdb/masterdb/trace‘ scope=both; 命令用于更改其目录
2、为了确保trace输出能够完整进行,还要调整此会话对trace文件大小的限制,一般将此限制取消,即将max_dump_file_size设置为UNLIMITED,或者设置为一个很大的阙值。
在满足了上述条件后,就可以启用10046event对会话进行后台跟踪了。
二、开始跟踪:
select distinct sid from v$mystat;---查看当前会话的sid
alter session set events "10046 trace name context forever, level 1";
level 1:跟踪sql语句,包括解析、执行、提取、提交和回滚等。
level 4:包括变量的详细信息
level 8:包括等待事件
level 12:包括绑定变量与等待事件
其中,level 1相当于打开了sql_trace;
select b.spid,a.sid,a.serial#,a.machine from v$session a,v$process b where a.paddr =b.addr and a.sid = ‘159‘---查询出的spid为trace文件的文件尾数字,如:spid=333,trace文件名:orcl_ora_333.trc;
三、结束事件:
alter session set events "10046 trace name context off";
然后在系统命令中执行tkprof,转换trace文件为易读文件;
以上是关于10046事件的主要内容,如果未能解决你的问题,请参考以下文章