1.用explain plan for来获取执行计划
explain plan for <sql>; select * from table(dbms_xplan.display());
结果如下:
---------------------------------------------------------------------------------------------------------------------
优点
- 不需要真实执行sql,方便快捷
缺点
- 这里的执行计划并不是真实的执行计划
- 不能获取运行时的相关统计信息(产生多少逻辑读,多少次递归调用,多少次物理读的情况)
- 无法判断表被访问了多少次
- 无法判断处理了多少行数据
---------------------------------------------------------------------------------------------------------------------
2.用autotrace 来获取执行计划
SET AUTOTRACE OFF --此为默认值,即关闭Autotrace SET AUTOTRACE ON EXPLAIN --只显示执行计划和执行结果 SET AUTOTRACE ON STATISTICS --只显示执行的统计信息和执行结果 SET AUTOTRACE ON --包含执行计划,统计信息和执行结果 SET AUTOTRACE TRACEONLY --只显示执行计划
使用 SET AUTOTRACE ON EXPLAIN 时,显示执行结果,和执行计划,如图:
使用 SET AUTOTRACE ON STATISTICS 时,显示执行结果,和统计信息,如图:
使用 SET AUTOTRACE ON 时,显示执行结果,执行计划和统计信息,如图:
使用 SET AUTOTRACE TRACEONLY 时,显示执行计划和统计信息如图:
---------------------------------------------------------------------------------------------------------------------
优点
- 可以输出运行时的相关统计信息(产生多少逻辑读,多少次递归调用,多少次物理读的情况);
缺点
- 获取的不是真实的执行计划
- 无法看到表被访问了多少次。
---------------------------------------------------------------------------------------------------------------------
3.
时间: 2024-10-19 03:32:45