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

  • Ben Vivona

    Ben Vivona

    24 Ocak 2010
  • MobileTechReview

    MobileTechRe

    6 HAZİRAN 2008
  • Tips On Linux

    Tips On Linu

    26 Temmuz 2008