Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Czy antysprzężenie jest bardziej wydajne niż lewe sprzężenie zewnętrzne?

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ł.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Usuń wiersze, aby mieć maksymalnie x wierszy na grupę w tabeli Oracle

  2. Dynamiczne przestawianie wierszy na kolumny w Oracle

  3. Sprawdź, czy hasło użytkownika jest prawidłowe, czy nie w plsql

  4. Znajdź rekordy z nakładającym się zakresem dat w SQL

  5. Dopasowywanie wartości zduplikowanych kolumn Oracle za pomocą Soundex, Jaro Winkler i Edit Distance (UTL_MATCH)