*Perbezaan prestasi antara COUNT() dan COUNT(1) dalam SQL Server: analisis mendalam**
Ramai pembangun bimbang sama ada menggunakan COUNT(1) adalah lebih baik daripada COUNT(*) dalam SQL Server 2005. Artikel ini akan menyelidiki isu ini dan menerangkan sebab di sebaliknya.
Kesimpulan: Tiada perbezaan dalam prestasi
Bertentangan dengan kepercayaan popular, tiada perbezaan prestasi yang ketara antara COUNT(1) dan COUNT(*). Kedua-duanya menghasilkan hasil yang sama dari segi pengiraan baris.
Punca: Pengoptimum SQL Server
Pengoptimum SQL Server mengiktiraf bahawa COUNT(1) dan COUNT(*) mengembalikan maklumat yang sama dan mengoptimumkan dengan sewajarnya. Pengoptimum menganggap kedua-dua fungsi ini sebagai operasi remeh, yang bermaksud bahawa penilaian ungkapan adalah sangat mudah dan tidak menjejaskan prestasi.
Contoh
Pertimbangkan pertanyaan berikut:
<code class="language-sql">SELECT COUNT(1) FROM dbo.tab800krows SELECT COUNT(1), FKID FROM dbo.tab800krows GROUP BY FKID SELECT COUNT(*) FROM dbo.tab800krows SELECT COUNT(*), FKID FROM dbo.tab800krows GROUP BY FKID</code>
Input/output (IO) dan rancangan pelaksanaan adalah sama untuk kedua-dua set pertanyaan. Ini membuktikan bahawa pengoptimum SQL Server mengiktiraf kesetaraan COUNT(1) dan COUNT(*).
Ringkasan
Ringkasnya, menggunakan COUNT(1) tidak memberikan sebarang kelebihan prestasi berbanding COUNT(*) dalam SQL Server 2005. Sistem pangkalan data mengoptimumkan kedua-dua fungsi untuk menghasilkan hasil yang sama. Oleh itu, pembangun boleh memilih sintaks yang mereka suka tanpa perlu risau tentang isu prestasi.
Atas ialah kandungan terperinci Count(*) vs Count(1) dalam SQL Server: Adakah Ia Memberi Impak Prestasi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!