Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Was ist das Beste, um zu überprüfen, ob Artikel vorhanden sind oder nicht:Select Count(ID)OR Exist(...)?

VORHANDEN, immer

  • COUNT durchläuft die Tabelle oder einen Index:Sie haben nach einem COUNT gefragt
  • EXISTS stoppt, sobald es eine Zeile findet

Bearbeiten, um klar zu sein

Wenn die E-Mail-Spalte in diesem Fall eindeutig und indexiert ist, wird sie natürlich geschlossen.

Im Allgemeinen verbraucht EXISTS weniger Ressourcen und ist auch korrekter. Sie suchen nach der Existenz einer Zeile, nicht "mehr als Null", auch wenn sie gleich sind

Edit2:In EXISTS können Sie NULL, 1, ID oder sogar 1/0 verwenden:es wird nicht überprüft ...

21. Mai 2011 bearbeiten:

Es sieht so aus, als ob dies in SQL Server 2005+ optimiert wurde, also ist COUNT in diesem Fall jetzt dasselbe wie EXISTS