生产环境使用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
posted @ 2024-06-15 17:25  seasonzone  阅读(22)  评论(0编辑  收藏  举报