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

  • ETrade Supply

    ETrade Suppl

    23 Temmuz 2011
  • Justin Schenck

    Justin Schen

    24 Kasım 2006
  • Vortez

    Vortez

    27 Temmuz 2009