生产环境使用10053分析Oracle的执行计划
【问题现象】
在SQL出现性能问题后,通过分析统计信息、直方图、SQL AWR、查看执行计划等,仍然找不出为什么SQL要选择差的执行计划,就需要通过10053查看这个SQL的执行计划的更详细的信息。
【操作方法】
通过10053事件来查看执行计划和详细的SQL解析过程,10053的trace文件提供了Oracle如何选择执行计划的原因。
10053 是最常用的Oracle 优化器optimizer 跟踪trace,10053 可以作为解析优化器为什么选择某个执行计划的辅助工具。
--查询SPID
SQL> select spid from v$process
where addr=(select paddr from v$session where sid=(select sid from v$mystat where rownum <=1));
SPID
------------------------------------------------
33651
--开启对指定会话的跟踪
sqlplus / as sysdba
--设置OS PID
SQL> oradebug setospid 33651
Oracle pid: 21, Unix process pid: 33651, image: oracle@dream (TNS V1-V3)
--不限制跟踪文件大小
SQL> oradebug unlimit;
Statement processed.
--开启10053事件跟踪
SQL> oradebug event 10053 trace name context forever,level 1
Statement processed.
--执行需要跟踪的相关SQL
select * from myTestTable;
--关闭跟踪
SQL> oradebug event 10053 trace name context off;
Statement processed.
--显示trace文件路径
SQL> oradebug tracefile_name
/oracle/app/oracle/diag/rdbms/ora11g/ora11g/trace/ora11g_ora_33651_10053.trc
分类: ORACLE
https://www.cnblogs.com/liulianzhen99/articles/17587246.html