Heim > Datenbank > MySQL-Tutorial > Count(*) vs. Count(1) in SQL Server: Gibt es einen Leistungsunterschied?

Count(*) vs. Count(1) in SQL Server: Gibt es einen Leistungsunterschied?

Barbara Streisand
Freigeben: 2025-01-23 18:22:08
Original
626 Leute haben es durchsucht

Count(*) vs. Count(1) in SQL Server: Is There a Performance Difference?

*SQL Server: Count() vs. Count(1) – Eine Leistungsanalyse**

Viele SQL-Benutzer wundern sich über den Leistungsunterschied zwischen COUNT(*) und COUNT(1). Beide Funktionen zählen Zeilen, aber gibt es einen echten Einfluss auf die Leistung?

In SQL Server (insbesondere Versionen ab 2005) ist die Antwort einfach: Es gibt keinen signifikanten Leistungsunterschied.

In der Dokumentation von Microsoft wird klargestellt, dass COUNT(*) alle Zeilen in einer Tabelle zählt (oder diejenigen, die eine bestimmte Bedingung erfüllen). Entscheidend ist, dass COUNT(1) – da „1“ ein Ausdruck ungleich Null ist – das gleiche Ergebnis liefert.

Der SQL Server-Abfrageoptimierer erkennt diese Äquivalenz. Es behandelt beide Funktionen identisch, was zu demselben Ausführungsplan, denselben E/A-Vorgängen und letztendlich derselben Leistung führt.

Betrachten Sie diese Beispiele:

<code class="language-sql">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;</code>
Nach dem Login kopieren

Das Ausführen dieser Abfragen führt zu identischen Ergebnissen und bestätigt die funktionale Äquivalenz von COUNT(*) und COUNT(1). Daher ist die Wahl zwischen ihnen weitgehend eine Frage des Codierungsstils oder persönlicher Vorlieben; Es hat keine Auswirkungen auf die Abfrageleistung in SQL Server.

Das obige ist der detaillierte Inhalt vonCount(*) vs. Count(1) in SQL Server: Gibt es einen Leistungsunterschied?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage