sql >> Database >  >> RDS >> Sqlserver

Kan een INNER JOIN betere prestaties bieden dan BESTAAT?

Over het algemeen geldt INNER JOIN en EXISTS zijn verschillende dingen.

De eerste retourneert duplicaten en kolommen uit beide tabellen, de laatste retourneert één record en, aangezien het een predikaat is, records uit slechts één tabel.

Als je een inner join doet op een UNIQUE kolom, vertonen ze dezelfde prestaties.

Als je een inner join doet op een recordset met DISTINCT toegepast (om de duplicaten te verwijderen), EXISTS is meestal sneller.

IN en EXISTS clausules (met een equijoin-correlatie) gebruiken meestal een van de verschillende SEMI JOIN algoritmen die doorgaans efficiënter zijn dan een DISTINCT op een van de tafels.

Zie dit artikel in mijn blog:

  • IN vs. JOIN vs. EXISTS


  1. Kan geen verbinding maken met MySQL-serverfout 111

  2. 5 tips voor het beheren van uw teams tijdens sociale afstand

  3. SQL Server Linked Server Voorbeeld Query

  4. Berichten en opmerkingen verwijderen uit Action Scheduler