10046和10053使用方法

本文介绍如何使用 Oracle 的 10046 和 10053 事件来跟踪 SQL 执行过程,包括查看等待事件、执行计划、递归调用等,并提供了具体的启用和禁用跟踪的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值