码迷,mamicode.com
首页 > 其他好文 > 详细

10046事件

时间:2018-11-22 00:17:54      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:ddr   ase   产生   tin   mac   用户   rdb   select   ast   

使用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事件

标签:ddr   ase   产生   tin   mac   用户   rdb   select   ast   

原文地址:https://www.cnblogs.com/hhaahh/p/9998246.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!