生产环境使用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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下