sql >> Database teknologi >  >> RDS >> Oracle

Er en anti-sammenføjning mere effektiv end en venstre udvendig samling?

Når du bruger "eksisterer ikke" eller "ikke i" i din SQL-forespørgsel, lader du Oracle vælge flette-anti-sammenføjnings- eller hash-anti-sammenføjningsadgangsstier.

Hurtig forklaring

For eksempel, givet join mellem tabel A og B (fra A join B på A.x =B.x) vil Oracle hente alle relevante data fra tabel A og forsøge at matche dem med tilsvarende rækker i tabel B, så det er strengt afhængigt af tabellens selektivitet Et prædikat.

Når du bruger anti-sammenføjningsoptimering, kan Oracle vælge tabellen med højere selektivitet og matche den med den anden, hvilket kan resultere i meget hurtigere kode.

Det kan den ikke med almindelig join- eller underforespørgsel, fordi den ikke kan antage, at ét match mellem tabel A og B er nok til at returnere den række.

Relaterede tip: HASH_AJ, MERGE_AJ.

Mere:

Dette ligner en fin og detaljeret artikel om emnet.

Her er en anden, mere klam artikel.



  1. Hvorfor er det estimerede antal rækker meget forskellige i phpmyadmin-resultater?

  2. Hvordan udfører jeg en PHP-forespørgsel ved valg af valgmuligheder ved hjælp af AJAX?

  3. Indsæt vælg MySQL med forberedte udsagn

  4. mysql trigger operand skal indeholde 2 kolonner