Pravděpodobně byste měli začít s EXPLAIN PLAN .
Potom upravte svou otázku a odešlete příkaz SQL a výstup EXPLAIN PLAN.
Později . . .
S tím dotazem ti moc nepomohu. 269 řádků, alespoň 29 SELECTů, paralelní dotazy, vzdálené databáze, vnější spojení (starý styl) a tak dále.
Nejlepší rada, kterou vám mohu dát, je
- získejte další informace z EXPLAIN PLAN a
- zjednodušte problém.
tabulka plánu má více sloupců, než je běžně zveřejňováno. Sloupce COST, CARDINALITY, BYTES a TIME mohou být užitečné při stanovení priority vašeho úsilí při ladění.
V tomto dotazu máte 10 úplných skenů tabulky. ("TABLE ACCESS FULL" v plánu dotazů.) To je obvykle špatné znamení; Skenování celé tabulky často trvá relativně dlouho. Není to vždy špatné znamení. Úplné prohledání malé tabulky může být rychlejší než prohledání indexu.
Začněte získáním výstupu EXPLAIN PLAN pro každý z 29 příkazů SELECT ve vašem dotazu. Pokud některý z nich zobrazuje úplnou kontrolu tabulky, pravděpodobně můžete zlepšit jejich výkon pomocí vhodné indexy . (Oracle podporuje mnoho různých druhů indexů. Nepřehlédněte příležitosti pro vícesloupcové indexy.) V každém případě vám výstup EXPLAIN PLAN pomůže identifikovat nejpomalejší z 29 SELECTů.