Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Apa yang terbaik untuk memeriksa apakah item ada atau tidak:Pilih Count(ID)OR Exist(...)?

ADA, selalu

  • COUNT akan melintasi tabel atau indeks:Anda meminta COUNT
  • EXISTS akan berhenti segera setelah menemukan baris

Edit, biar jelas

Tentu saja, dalam hal ini jika kolom email unik dan terindeks maka akan ditutup.

Umumnya, EXISTS akan menggunakan lebih sedikit sumber daya dan juga lebih tepat. Anda mencari keberadaan baris, bukan "lebih dari nol" meskipun sama

Sunting2:Di EXISTS, Anda dapat menggunakan NULL, 1, ID, atau bahkan 1/0:tidak dicentang...

21 Mei 2011 edit:

Sepertinya ini dioptimalkan di SQL Server 2005+ jadi COUNT sekarang sama dengan EXISTS dalam hal ini



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server 2012 meminta data Access 2007 menggunakan kesalahan OPENROWSET

  2. Buat Kolom Terhitung menggunakan data dari tabel lain

  3. Akurasi Tipe Data SYSDATETIME di SQL Server

  4. Analog mutex dalam SQL?

  5. sambungkan sql server 2005/2008 melalui internet