2012-05-13 16 views
13

¿Alguien me puede explicar cuál es la diferencia entre el plan de ejecución y el plan de explicación?diferencia entre el plan de explicación y el plan de ejecución

Cuando ejecuto

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 | 
-------------------------------------------------------------------------------------- 

estoy consiguiendo el mismo resultado, por lo que ¿cuál es la diferencia entre los dos.

Respuesta

9

explain plan es la declaración que se utiliza para mostrar el plan de ejecución.

Las dos muestras que ha mostrado tienen un formato diferente, eso es todo.

No nos dijo exactamente cómo generó esas salidas ni qué herramienta estaba usando.

Pero si no me equivoco, uno de ellos es la salida de un autotrace dentro de SQL * Plus y el otro la salida al usar de los procedimientos del paquete dbms_xplan.

+0

: Sí he utilizado el menthod mencionado anteriormente para generar el plan de ejecución del plan y explicar .Pero yo no sé por qué la gente a veces piden explicar el plan y, a veces plan de ejecución? –

+0

@ GauravSoni: eso es solo fraseología. Cuando preguntan por el "plan de ejecución" se enfocan en la salida. Al utilizar el término "explicar el plan" se centran en cómo ejecutarlo (generalmente la pregunta será "muéstranos el ** resultado ** del plan de explicación) –

+0

@a_horse_with_no_name ¿Puedes explicar exactamente cómo debo interpretar la tabla en el parte inferior del plan de ejecución? – Songo

Cuestiones relacionadas