2012-05-13 15 views
13

Czy ktoś może mi wyjaśnić, jaka jest różnica między planem wykonawczym a planem wyjaśniającym.Różnica między wyjaśnieniem planu i planu wykonania

Kiedy wykonać

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

otrzymuję taką samą moc, więc jaka jest różnica między tymi dwoma.

Odpowiedz

9

explain plan to instrukcja używana do wyświetlania planu wykonania.

Dwie przedstawione próbki są po prostu sformatowane inaczej, to wszystko.

Nie powiedziałeś nam, jak dokładnie wygenerowałeś te wyniki ani jakiego narzędzia używasz.

Ale jeśli się nie mylę, jednym z nich jest wyjście autotrace wewnątrz SQL * Plus inne wyjście przy korzystaniu z procedur z pakietu dbms_xplan.

+0

: Tak Użyłem Powyższy menthod wygenerować wyjaśnić plan i wykonanie planu .Ale nie wiem dlaczego ludzie czasami prosić o wyjaśnienie planu i czasami plan wykonania? –

+0

@GauravSoni: To tylko sformułowania. Gdy pytają o "plan wykonania", koncentrują się na wynikach. Używając terminu "wyjaśnij plan", koncentrują się na sposobie jego uruchomienia (zwykle pytanie brzmi "pokaż nam ** wynik ** planu wyjaśniającego). –

+0

@a_horse_with_no_name Czy możesz wyjaśnić, jak powinienem interpretować tabelę na dole planu wykonania? – Songo

Powiązane problemy