Различия не очень тонкие, они огромные.
Как вы правильно упомянули, план объяснения хранит его данные в plan_table, и план запрашивается из этой таблицы.Это означает, что sql НЕ выполняется, только оптимизатору предлагается предоставить план.В этой настройке план в значительной степени зависит от среды оптимизатора вашего сеанса, в котором вы запускаете план объяснения.
С DBMS_XPLAN.DISPLAY_CURSOR вы получаете план в том виде, в каком он был выполнен ранее.План не сохраняется путем выдачи DBMS_XPLAN.DISPLAY_CURSOR;он хранится в структурах v $, потому что он был выполнен.
В сеансе вы можете запустить
select * from dual;
select * from table(dbms_xplan.display_cursor);
Запрос выполняется в 'select from dual', это также приводит ксоздание плана и что я хранил в структурах v $.display_cursor просто находит последний выполненный курсор и отображает план, которому он следовал.С этой настройкой / * + collect_plan_statistics * / не имеет добавленной стоимости, потому что план и его статистика уже присутствуют в shared_pool.
Ваш другой вопрос, является ли план всегда одним и тем же, зависит от многих факторов.Являются ли переменные одинаковыми ?, используете ли вы Adaptive Cursor Sharing, используете ли вы стабильность плана SQL ...
Ваш вопрос: задайте для плана объяснения и display_cursor один и тот же план?Я бы не стал полагаться на это, потому что с планом объяснения план зависит от вашей среды оптимизатора сеансов.display_cursor - лучший способ, и желательно использовать именованный курсор, созданный приложением.Если вы не используете стабильность плана SQL, план может измениться при изменении статистики оптимизатора.Если вы используете Adaptive Cursor Sharing, план может измениться при изменении переменных.
Немного хорошего прочтения о накладных расходах выборки можно найти в Jonathan Lewis blog.Также от Джонатана: collect_plan_statistics Я часто умнее использовать для настройки отладки statistics_level 'all', а не подсказку / * + collect_plan_statistics * /.Подсказка изменяет код и вызывает новый sql_id.
Надеюсь, это поможет.