Tidak ada perbedaan.
Alasan:
Buku online mengatakan "
COUNT ( { [ [ ALL | DISTINCT ] expression ] | * } )
"
"1" adalah ekspresi non-null:jadi sama dengan COUNT(*)
.Pengoptimal mengenalinya apa adanya:sepele.
Sama seperti EXISTS (SELECT * ...
atau EXISTS (SELECT 1 ...
Contoh:
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
IO yang sama, rencana yang sama, berhasil
Sunting, Agustus 2011
Pertanyaan serupa di DBA.SE.
Sunting, Des 2011
COUNT(*)
disebutkan secara khusus dalam ANSI-92 (cari "Scalar expressions 125
")
Kasus:
a) Jika COUNT(*) ditentukan, maka hasilnya adalah kardinalitas T.
Artinya, standar ANSI mengenalinya sebagai pendarahan yang jelas apa yang Anda maksud. COUNT(1)
telah dioptimalkan oleh vendor RDBMS karena dari takhayul ini. Kalau tidak, itu akan dievaluasi sesuai ANSI
b) Jika tidak, misalkan TX menjadi tabel kolom tunggal yang merupakan hasil penerapan
ke setiap baris Tand yang menghilangkan nilai nol. Jika satu atau lebih nilai null dihilangkan, maka kondisi penyelesaian dinaikkan:warning-