获取执行计划之explain plan for




示    例


explain plan for select * from emp;
select * from table(dbms_xplan.display());



explain plan命令通常和dbms_xplan.display()命令结合使用


PL/SQL Developer中F5快捷键的原理就是调用explain plan命令



原    理



explain plan 命令的原理是Oracle将目标SQL所产生的执行计划写入PLAN_TABLE$(ON COMMIT PRESERVE ROWS 的 GLOBAL TEMPORARY TABLE 即会话级临时表仅对当前会话有效)然后再通过dbms_xplan.display()命令将PLAN_TABLE$中的具体执行步骤格式化显示出来



优    缺    点


优    点


  • 无需真正执行,快捷方便


缺    点


  • 没有输出相关统计信息


  • 无法判断是处理了多少行


  • 无法判断表被访问了多少次


当使用explain plan for 获得含有bind变量sql语句的执行计划时,是不可靠的,explain plan for不会peeking bind值



上一篇:解决zookeeper集群重启 Error contacting service. It is probably not running 问题


下一篇:Execution Plans in SQL Server