Rumah > pangkalan data > tutorial mysql > Count(*) vs Count(1) dalam SQL Server: Adakah Terdapat Perbezaan Prestasi?

Count(*) vs Count(1) dalam SQL Server: Adakah Terdapat Perbezaan Prestasi?

Barbara Streisand
Lepaskan: 2025-01-23 18:22:08
asal
655 orang telah melayarinya

Count(*) vs. Count(1) in SQL Server: Is There a Performance Difference?

*SQL Server: Count() vs. Count(1) – Analisis Prestasi**

Ramai pengguna SQL tertanya-tanya tentang perbezaan prestasi antara COUNT(*) dan COUNT(1). Kedua-dua fungsi mengira baris, tetapi adakah terdapat kesan prestasi sebenar?

Dalam SQL Server (khususnya, versi dari 2005 dan seterusnya), jawapannya adalah mudah: tiada perbezaan prestasi yang ketara wujud.

Dokumentasi Microsoft menjelaskan bahawa COUNT(*) mengira semua baris dalam jadual (atau yang memenuhi syarat tertentu). Yang penting, COUNT(1)—kerana '1' ialah ungkapan bukan nol—menghasilkan hasil yang sama.

Pengoptimum pertanyaan SQL Server mengiktiraf kesetaraan ini. Ia merawat kedua-dua fungsi secara sama, menghasilkan pelan pelaksanaan yang sama, operasi I/O dan akhirnya, prestasi.

Pertimbangkan contoh ini:

<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>
Salin selepas log masuk

Melaksanakan pertanyaan ini akan menghasilkan hasil yang sama, mengesahkan kesetaraan fungsi COUNT(*) dan COUNT(1). Oleh itu, pilihan di antara mereka sebahagian besarnya adalah soal gaya pengekodan atau keutamaan peribadi; ia tidak akan memberi kesan kepada prestasi pertanyaan dalam SQL Server.

Atas ialah kandungan terperinci Count(*) vs Count(1) dalam SQL Server: Adakah Terdapat Perbezaan Prestasi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan