我正在Explain plan and Execution plan
Oracle 中学习,根据我目前所读到的内容,解释的计划可能与语句执行期间使用的实际计划不同。所以我认为执行计划比解释计划更有用optimization purposes
。
我的问题 :
一个Sql语句,你通常如何生成执行计划?在阅读了不同的文章后,我现在有点困惑,因为在每篇文章中都引入了不同的方法!例如,我遇到了这个:
explain plan
set statement_id = 'ex_plan1' for
select phone_number
from employee
where phone_number like '650%';
select PLAN_TABLE_OUTPUT
from table (DBMS_XPLAN.DISPLAY(STATEMENT_ID=>'ex_plan1'));
这是
correct way
为了制定执行计划(不是解释计划)吗?拥有正确执行计划的其他方法是什么?(
that optimizer
选择执行语句的方法)。
提前致谢
回答你的第一个问题
不,这是解释计划而不是执行计划。
EXPLAIN PLAN 命令 - 显示 SQL 语句的解释计划而不实际执行该语句。
回答你的第二个问题:
下面将显示当前会话中最后执行的 SQL 的执行计划
下面将展示使用 SQL_ID 的执行计划:
您也可以使用 V$SQL_PLAN,因为该视图最终用于 DBMS_XPLAN 生成执行计划
为了清楚地了解这个主题,请参考以下链接:
链接 1 链接2