Jeśli w zapytaniu SQL użyjesz „nie istnieje” lub „nie w”, pozwalasz Oracle wybrać scalanie ścieżek dostępu anty-join lub hash anti-join.
Szybkie wyjaśnienie
Na przykład, dane złącze między tabelami A i B (z A złączenia B na A.x =B.x) Oracle pobierze wszystkie istotne dane z tabeli A i spróbuje dopasować je do odpowiednich wierszy w tabeli B, więc jest to ściśle zależne od selektywności tabeli Predykat.
Używając optymalizacji anti-join, Oracle może wybrać tabelę o większej selektywności i dopasować ją do drugiej, co może skutkować znacznie szybszym kodem.
Nie może tego zrobić za pomocą zwykłego sprzężenia lub podzapytania, ponieważ nie może zakładać, że jedno dopasowanie między tabelami A i B wystarczy do zwrócenia tego wiersza.
Powiązane wskazówki: HASH_AJ, MERGE_AJ.
Więcej:
To wygląda na ładny i szczegółowy artykuł na ten temat.
Tutaj to kolejny, bardziej przyzwoity artykuł.