sql >> Database teknologi >  >> RDS >> Sqlserver

Kan en INNER JOIN tilbyde bedre ydeevne end EKSISTERER

Generelt set INNER JOIN og EXISTS er forskellige ting.

Førstnævnte returnerer dubletter og kolonner fra begge tabeller, sidstnævnte returnerer én post og, som et prædikat, returnerer poster fra kun én tabel.

Hvis du laver en indre joinforbindelse på en UNIQUE kolonne, udviser de samme ydeevne.

Hvis du laver en indre joinforbindelse på et recordset med DISTINCT anvendt (for at slippe af med dubletterne), EXISTS er normalt hurtigere.

IN og EXISTS klausuler (med en equijoin-korrelation) anvender normalt en af ​​de flere SEMI JOIN algoritmer, som normalt er mere effektive end en DISTINCT på et af bordene.

Se denne artikel i min blog:

  • IND vs. JOIN vs. EKSISTERER


  1. Brug af underforespørgsel i en Check-erklæring i Oracle

  2. Sporing af PostgreSQL med perf

  3. MySQL Indsæt fra en database i en anden

  4. PostgreSQL deaktiver mere output