【发布时间】:2012-03-12 10:17:57
【问题描述】:
只是要求澄清两者之间的区别。据我了解,EXPLAIN PLAN 为您提供理论执行计划,而 DBMS_XPLAN.DISPLAY_CURSOR 为您提供实际执行计划计划与语句的执行统计。
EXPLAIN PLAN 将此数据存储在 PLAN_TABLE 中,而 DBMS_XPLAN 使用 V$SQL_PLAN、V$SQL_PLAN_STATISTICS 和 V$SQL_PLAN_STATISTICS_ALL 视图获取其信息。
但是,要让 DISPLAY_CURSOR 收集该语句的实际运行时统计信息,需要设置 /*+ gather_plan_statistics */ 提示。否则,只有 V$SQL_PLAN 被填充,它只会给你执行计划而不是实际的执行统计信息。它仅适用于填充 V$SQL_PLAN_STATISTICS 的/*+ gather_plan_statistics */。
所以我的问题是,如果我不使用gather_plan_statistics 提示,EXPLAIN PLAN 和DISPLAY_CURSOR 是否总是给我相同的执行计划(对于同一条语句)?
【问题讨论】:
标签: sql performance oracle oracle11g sql-execution-plan