SORU
3 AĞUSTOS 2009, PAZARTESİ


Count(*) vs Count(1)

Sadece merak varsa siz kullanın Count(1) Count(*) ve varsa arasındaki en büyük fark performans ya da eğer bu sadece eski bir alışkanlık oldu getirdiğini ileri dönemler geride kaldı?

(Belirli bir veritabanı SQL Server 2005.)

CEVAP
3 AĞUSTOS 2009, PAZARTESİ


Fark yok.

Sebep:

Books on-line diyor "COUNT ( { [ [ ALL | DISTINCT ] expression ] | * } )"

"1 COUNT(*).aynı şey yani" boş olmayan bir ifadesidir: Doktoru ne olduğunu tanır: önemsiz.

EXISTS (SELECT * ... EXISTS (SELECT 1 ... aynı

Örnek:

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

Aynı IO, aynı plan, çalışır

Düzen, Ağustos 2011

Similar question on DBA.SE.

Düzenleme, Aralık 2011

COUNT(*) özellikle ANSI-92 belirtilen (bakın "Scalar expressions 125")

Dava:

a) Eğer COUNT(*) belirtilirse, sonuç T. önem

Yani, ANSI Standardı ne demek istediğini kanama belirgin olarak tanır. COUNT(1) İLİŞKİSEL satıcıları tarafından optimize edilmiştirçünkübu batıl inançlar. Aksi halde başına ANSI olarak değerlendirilecek

b) Aksi halde, izin, tek bir sütun tablo TX < başvuru sonuç;değer T her satır için ifade> ve null değerleri ortadan kaldırır. Eğer bir veya daha fazla boş bir değerler tamamlanması bir durum ortaya çıkar ve sonra ortadan: uyarı-

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Hak5

    Hak5

    7 EYLÜL 2005
  • Turkish Airlines

    Turkish Airl

    11 AĞUSTOS 2006
  • WhtButterflyLiz

    WhtButterfly

    14 NİSAN 2008