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

  • How It Should Have Ended

    How It Shoul

    5 Mart 2007
  • Munchkin the Teddy Bear

    Munchkin the

    30 EYLÜL 2011
  • pain975

    pain975

    27 NİSAN 2008