EXPLAIN PLAN

Autor: Marcin Kasiński
21.01.2011 13:24:00 +0200

Polecenie EXPLAIN PLAN jest wykorzystywane do strojenia zapytań SQL. Jako parametr przyjmuje ono analizowane zapytanie SQL, a jako wynik podaje plan wykonania tego zapytania w zależności od wybranego w systemie optymalizatora. Jest to narzędzie ułatwiające analizę efektów poczynionych zmian w systemie, np. po utworzeniu lub usunięciu indeksów, czy tez tez po wprowadzeniu podpowiedzi do zapytania itp. Wyniki tego polecenia są umieszczane w specjalnej tabeli. Domyślna nazwa tej tabeli jest plan_table. Taka tabele można utworzyć skryptem utlxplan.sql. Przykłądowe wywołanie tego polecenia ma postać:

EXPLAIN PLAN
SET STATEMENT_ID='Nazwa raportu'
INTO plan_table
FOR
SELECT *
FROM tab1,tab2 where tab1.id=tab2.id
ORDER BY tab1.id;

Wyniki polecenia zapisane są w tabeli plan_table. Aby przeanalizować wyniki zapytania można wykonać poniższe zapytanie:

SELECT SUBSTR(LPAD(' ', 2*( LEVEL-1))||operation,1,30)
|| ' ' || SUBSTR(options,1,15)
|| ' ' || SUBSTR(object_name,1,15)
|| ' ' || SUBSTR(DECODE(id,0, 'Kosz: ' || position),1,12)
"Plan wykonania",
SUBSTR(optimizer,1,10) "Optymalizator"
FROM plan_table
START WITH id=0
AND statement_id='Nazwa raportu'
CONNECT BY PRIOR id=parent_id
AND statement_id='Nazwa raportu'

powrót
Zachęcam do przedstawienia swoich uwag i opinii w polu komentarzy.

Komentarze

Dodaj Komentarz