这篇文章主要介绍数据库中如何使用10046事件跟踪SQL,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
10046 事件
概述
这是一个特殊的事件,可以被用来发起sql_trace类的活动
使用10046的优势就是可以在trace文件中看到详细的数据库活动细节,细节信息也取决于事件的level。
level
1:标准的sql_trace
4:level 1加上绑定变量 [ bind=true ]
8:levle 1加上等待。在定位等待事件的时候很有用 [ wait=true ]
12:常用的level,包含了level 1,绑定变量,等待,默认stat line。相当于(4+8)
16:每次执行都生成stat line。11g新增。 [ plan_stat=all_executions ]
32:不生成执行统计。11g新增 。[ plan_stat=never ]
64:Adaptive dump of STAT lines. This dumps the STAT information if a SQL took more than about 1 minute thereby giving information for the more expensive SQLs and for different executions of such SQLs。11gR2新增。 [ plan_stat=adaptive ]
使用10046事件
session级追踪
—查看trace的位置
SQL> show parameter user_dump_dest
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
user_dump_dest string /u01/app/oracle/diag/rdbms/zld
b/zldb/trace
—tracefile标志
SQL> alter session set tracefile_identifier='liuzhilong';
Session altered.
—开启10046
SQL> alter session set events '10046 trace name context forever,level 12';
Session altered.
SQL> select * from scott.emp where rownum<=1;
EMPNO ENAME JOB MGR HIREDATE SAL COMM
---------- ---------- --------- ---------- --------- ---------- ----------
DEPTNO
----------
7369 SMITH CLERK 7902 17-DEC-80 800
20
SQL>
退出sqlplus(session级)或者使用以下语句关闭事件
alter session set events '10046 trace name context off’;
[root@lzl Desktop]# cd /u01/app/oracle/diag/rdbms/zldb/zldb/trace/
[root@lzl trace]# ls *liu*
zldb_ora_2990_liuzhilong.trc zldb_ora_2990_liuzhilong.trm
使用oradebug工具
SQL> oradebug setmypid
Statement processed.
SQL> oradebug event 10046 trace name context forever, level 12;
Statement processed.
SQL> select ename from scott.emp where rownum<=1;
ENAME
----------
SMITH
SQL> oradebug tracefile_name;
/u01/app/oracle/diag/rdbms/zldb/zldb/trace/zldb_ora_2990.trc
SQL>
以上是“数据库中如何使用10046事件跟踪SQL”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。