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
|