Když ve svém dotazu SQL použijete „neexistuje“ nebo „není v“, umožníte společnosti Oracle, aby zvolila přístupové cesty proti spojení sloučením nebo hashováním.
Rychlé vysvětlení
Například při daném spojení mezi tabulkou A a B (z A spojení B na A.x =B.x) Oracle načte všechna relevantní data z tabulky A a pokusí se je porovnat s odpovídajícími řádky v tabulce B, takže je přísně závislý na selektivitě tabulky. Predikát.
Při použití anti-join optimalizace může Oracle vybrat tabulku s vyšší selektivitou a spárovat ji s druhou, což může vést k mnohem rychlejšímu kódu.
Nemůže to udělat s běžným spojením nebo poddotazem, protože nemůže předpokládat, že jedna shoda mezi tabulkami A a B stačí k vrácení tohoto řádku.
Související tipy: HASH_AJ, MERGE_AJ.
Další:
Toto vypadá to na pěkný a podrobný článek na toto téma.
Zde je další, výstižnější článek.