2012-05-13 10 views
13

Qualcuno può spiegarmi qual è la differenza tra piano di esecuzione e piano di spiegazione.differenza tra spiegare piano e piano di esecuzione

Quando eseguo

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

io sono sempre la stessa uscita, quindi qual è la differenza tra i due.

risposta

9

explain plan è l'istruzione utilizzata per visualizzare il piano di esecuzione.

I due esempi che hai mostrato sono solo formattati in modo diverso, tutto qui.

Non ci hai detto esattamente come hai generato quelle uscite e quale strumento stavi usando.

Ma se non sbaglio, uno di questi è l'output di un autotrace all'interno di SQL * Plus l'altro l'output quando si utilizzano delle procedure del pacchetto dbms_xplan.

+0

: Sì, ho usato il sopra citato menthod per generare il piano di spiegare e di esecuzione piano .Ma non so perché la gente a volte chiedono di spiegare piano e, a volte piano di esecuzione? –

+0

@GauravSoni: è solo una formulazione. Quando chiedono il "piano di esecuzione" si concentrano sull'output. Quando si usa il termine "spiegare il piano" si concentrano su come eseguirlo (di solito la domanda sarà "mostraci l'output ** ** del piano di spiegazione) –

+0

@a_horse_with_no_name puoi spiegare esattamente come dovrei interpretare il tavolo al parte inferiore del piano di esecuzione? – Songo