DBMS_XPLAN.DISPLAY_CURSOR vs Explain Plan, если не используется подсказка gather_plan_statistics

Просто прошу некоторых пояснений относительно разницы между 2. Насколько я понимаю, 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, который предоставит вам только план выполнения, но не фактическую статистику выполнения. Это только с / * + gather_plan_statistics * / , где заполняется V $ SQL_PLAN_STATISTICS.

Итак, мой вопрос: если я не использую подсказку gather_plan_statistics, всегда ли EXPLAIN PLAN и DISPLAY_CURSOR будут давать мне один и тот же план выполнения (для одного и того же оператора)?

8
задан APC 22 February 2012 в 05:33
поделиться