sql >> Databasteknik >  >> RDS >> Sqlserver

Vad är bäst att kontrollera om objektet existerar eller inte:Välj Count(ID)OR Exist(...)?

FINNS, alltid

  • COUNT kommer att gå igenom tabellen eller ett index:du bad om ett COUNT
  • EXISTS stoppas så snart den hittar en rad

Redigera, för att vara tydlig

Naturligtvis, i det här fallet, om e-postkolumnen är unik och indexerad kommer den att vara nära.

I allmänhet kommer EXISTS att använda mindre resurser och är också mer korrekt. Du letar efter existensen av en rad, inte "mer än noll" även om de är samma

Edit2:I EXISTS kan du använda NULL, 1, ID eller till och med 1/0:det är inte markerat...

21 maj 2011 redigering:

Det ser ut som att detta har optimerats i SQL Server 2005+ så ANTAL är nu detsamma som FINNS i det här fallet



  1. Google Cloud SQL med SSL från Compute Engine och/eller externt nätverk

  2. Dela upp värden över flera rader

  3. Skapa profiler i Oracle för användarsäkerhet

  4. SQL Server Länkad Server Problem Inloggning misslyckades för användaren 'NT AUTHORITY\ANONYMOUS LOGON'