Gau*_*oni 14 oracle sql-execution-plan
任何人都可以解释一下执行计划和解释计划之间的区别.
当我执行
 set autotrace traceonly;
 select * from emp where empno=7369;
Execution Plan
----------------------------------------------------------
  0       SELECT STATEMENT Optimizer Mode=ALL_ROWS (Cost=1 Card=1 Bytes=38)
  1    0    TABLE ACCESS BY INDEX ROWID SCOTT.EMP (Cost=1 Card=1 Bytes=38)
  2    1      INDEX UNIQUE SCAN SCOTT.PK_EMP (Cost=0 Card=1)
 Explain Plan
 explain plan for select * from emp where empno=7369;
 select * from table(dbms_xplan.display);
Plan hash value: 2949544139
--------------------------------------------------------------------------------------
| Id  | Operation                   | Name   | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT            |        |     1 |    38 |     1   (0)| 00:00:01 |
|   1 |  TABLE ACCESS BY INDEX ROWID| EMP    |     1 |    38 |     1   (0)| 00:00:01 |
|*  2 |   INDEX UNIQUE SCAN         | PK_EMP |     1 |       |     0   (0)| 00:00:01 |
--------------------------------------------------------------------------------------
我得到相同的输出,所以两者之间有什么区别.
ste*_*rey 11
解释计划是优化器在运行时认为会发生的,执行计划实际上是在运行查询时发生的.
请看这里的链接.
http://tkyte.blogspot.co.uk/2007/04/when-explanation-doesn-sound-quite.html
explain plan 是用于显示执行计划的语句. 
您显示的两个样本的格式不同,就是全部.
您没有告诉我们您是如何生成这些输出的,也不是您正在使用的工具.
但是如果没有弄错的话,其中一个是autotrace内部SQL*Plus的输出,另一个是使用dbms_xplan包的程序时的输出.
| 归档时间: | 
 | 
| 查看次数: | 23859 次 | 
| 最近记录: |