您的位置:首页 > 其它

10046和10053使用方法

2016-02-25 15:52 337 查看
1.10046 是用来干嘛的? 跟踪一个sql的,看一个sql的等待事件。

2. 什么时候才要用 10046 呢? (不能抛弃 10046)
①.查看sql等待事件;
②.执行计划是真的;
③.发现 隐含的递归调用的sql;(内部的sql)
select xxx from test where id=1000; ---1秒

delete test where id=1000 ---1分钟
④.研究数据库

3.用10046跟踪一个sql的方法

方法一:
SQL> oradebug setmypid
SQL> alter session set events '10046 trace name context forever ,level 12' ; ++开启当前会话的跟踪
SQL> select * from emp; ++执行需要跟踪的sql
SQL> alter session set events '10046 trace name context off' ; ++关闭当前回环的跟踪
SQL> oradebug tracefile_name

方法二:

SQL> oradebug setmypid /setorapid/setospid/setpname
SQL> oradebug event 10046 trace name context forever,lever n;
SQL> select * from emp;
SQL> oradebug event 10046 trace name context off;
SQL> oradebug tracefile_name

要想 10046 trace 出来有等待事件必须 清空buffer cache
alter system flush buffer_cache;

二、10053 trace

10053 是用来干嘛的?
1.研究cbo(为啥走索引,为啥走全表扫描)看最终sql的 final怎么走的;
2.10053 可以用来检查 cbo 的bug, cbo的 新特征

用1005跟踪一个sql的方法

SQL> oradebug setmypid
SQL> alter session set events='10053 trace name context forever,level 1';
SQL> select * from emp;
SQL> alter session set events '10053 trace name context off';
SQL> oradebug tracefile_name

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: