Du skal nok starte med FORKLÆR PLAN .
Rediger derefter dit spørgsmål, og post SQL-sætningen og outputtet fra EXPLAIN PLAN.
Senere . . .
Jeg vil ikke være megen hjælp for dig med den forespørgsel. 269 linjer, mindst 29 SELECT'er, parallelle forespørgsler, fjerndatabaser, ydre joinforbindelser (gammel stil) og så videre.
Det bedste råd, jeg kan give dig, er
- få flere oplysninger fra EXPLAIN PLAN, og
- forenkle problemet.
plantabellen har flere kolonner, end der normalt bliver lagt op. Kolonnerne COST, CARDINALITY, BYTES og TIME kan være nyttige til at prioritere din tuningindsats.
Du har 10 fulde tabelscanninger i den forespørgsel. ("TABELADGANG FULD" i forespørgselsplanen.) Det er normalt et dårligt tegn; scanninger af fuld bord tager ofte relativt lang tid at køre. Det er ikke altid et dårligt tegn. En fuld scanning af en lille tabel kan være hurtigere end en indeksscanning.
Start med at få EXPLAIN PLAN-output for hver af de 29 SELECT-sætninger i din forespørgsel. Hvis nogen af dem viser en fuld tabelscanning, kan du sandsynligvis forbedre deres ydeevne med egnede indekser . (Oracle understøtter mange forskellige slags indekser. Overse ikke muligheder for indekser med flere kolonner.) Under alle omstændigheder vil EXPLAIN PLAN-output hjælpe dig med at identificere den langsomste af de 29 SELECT.