DBMS_XPLAN.DISPLAY_CURSOR против объяснения плана, если не используется подсказка collect_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.
Так что мой вопрос: если я не буду использовать подсказку collect_plan_statistics, будут ли EXPLAIN PLAN и DISPLAY_CURSOR всегда давать мне один и тот же план выполнения (для одного и того же оператора)?