Terug naar de beginpaginaCentor Homepage

Handig

Tips & Trucs


Hieronder geen echte tip of truc, maar gewoon een handig commando om in een bestandje te bewaren.

Script dat een explain plan doet van het sql-statement dat op dat moment in de buffer staat. (De tabel plan_table moet wel bestaan en bij voorkeur iedere user zijn eigen versie. Om deze aan te maken kun je <ORAHOME\RDBMSnn\UTLXPLAN.SQL uitvoeren)

SET ECHO OFF
SET FEEDBACK OFF
SET TIMING ON
-- Afiedt.buf opslaan
SAVE "AFIEDT.BUF" REPLACE
-- PLAN TABLE leegmaken. Let op:
TRUNCATE doet een impliciete COMMIT
TRUNCATE TABLE PLAN_TABLE;
-- zet statement weer in buffer
GET "AFIEDT.BUF" NOLIST
-- Zet "EXPLAIN PLAN FOR" voor het
statement
0 EXPLAIN PLAN FOR <statement>
-- voer de EXPLAIN uit
RUN
-- Lees het resultaat
SELECT LPAD ( ' ' , 2* (LEVEL-1) ) | |
OPERATION | | ' ' | | OPTIONS | | ' '
| | OBJECT_NAME | | '
' | | OBJECT_TYPE | | ' ' | | OPTIMIZER
| | DECODE (ID, 0, ' Cost=' | |
POSITION) ACCESS_PATH
FROM PLAN_TABLE
START WITH ID = 0 CONNECT BY PRIOR ID =
PARENT_ID;
-- Herstel het originele statement
GET "AFIEDT.BUF" NOLIST
SET FEEDBACK 1
SET ECHO ON
SET TIMING OFF