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

Apakah SELECT COUNT(column) lebih cepat/lebih lambat dari SELECT COUNT(*)?

Saya mencoba beberapa SELECT COUNT(*) FROM MyTable vs. SELECT COUNT(SomeColumn) FROM MyTable dengan berbagai ukuran tabel, dan di mana SomeColumn sekali adalah kolom kunci pengelompokan, setelah berada dalam indeks yang tidak berkerumun, dan sekali tidak dalam indeks sama sekali.

Dalam semua kasus, dengan semua ukuran tabel (dari 300.000 baris hingga 170 juta baris), saya tidak pernah melihat perbedaan baik dari segi kecepatan maupun rencana eksekusi - dalam semua kasus, COUNT ditangani dengan melakukan pemindaian indeks berkerumun -> yaitu memindai seluruh tabel, pada dasarnya. Jika ada indeks non-cluster yang terlibat, maka pemindaian ada pada indeks itu - bahkan ketika melakukan SELECT COUNT(*) !

Tampaknya tidak ada perbedaan dalam hal kecepatan atau pendekatan bagaimana hal-hal itu dihitung - untuk menghitung semuanya, SQL Server hanya perlu memindai seluruh tabel - titik.

Pengujian dilakukan pada SQL Server 2008 R2 Developer Edition



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Transform/ Proyeksikan geometri dari satu SRID ke SRID lainnya

  2. Cara membuat RAND() Deterministik di SQL Server

  3. PHP sqlsrv_connect ke SQL Server:Terjadi kesalahan terkait jaringan atau spesifik saat membuat koneksi ke SQL Server

  4. Perbedaan Antara sys.columns, sys.system_columns, &sys.all_columns di SQL Server

  5. Bisakah Saya Membatasi Koma Beberapa Baris Menjadi Satu Kolom?