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

SQL Joins vs SQL Subqueries (Ydeevne)?

Jeg forventer, at den første forespørgsel er hurtigere, primært fordi du har en ækvivalens og en eksplicit JOIN. Efter min erfaring IN er en meget langsom operator, da SQL normalt evaluerer den som en række WHERE klausuler adskilt af "ELLER" (WHERE x=Y OR x=Z OR... ).

Som med ALLE TING SQL kan dit kilometertal dog variere. Hastigheden vil blandt andet afhænge meget af indekser (har du indekser på begge ID-kolonner? Det vil hjælpe meget...)

Den eneste RIGTIGE måde at fortælle med 100 % sikkerhed, hvad der er hurtigere, er at slå præstationssporing til (IO Statistics er særligt nyttigt) og køre dem begge. Sørg for at rydde din cache mellem kørsler!



  1. MySQL Andet (eller tredje) Indeks af i streng

  2. Maksimalt antal tegn i etiketter (tabelnavne, kolonner osv.)

  3. Opdater tabel fra en anden tabel og en anden database

  4. Hvordan indsætter man i en tabelvariabel med en dynamisk forespørgsel?