Maison >base de données >tutoriel mysql >Count(*) vs Count(1) dans SQL Server : cela a-t-il un impact sur les performances ?

Count(*) vs Count(1) dans SQL Server : cela a-t-il un impact sur les performances ?

DDD
DDDoriginal
2025-01-23 18:38:14701parcourir

Count(*) vs. Count(1) in SQL Server: Does it Impact Performance?

*Différence de performances entre COUNT() et COUNT(1) dans SQL Server : analyse approfondie**

De nombreux développeurs se demandent si l'utilisation de COUNT(1) est meilleure que COUNT(*) dans SQL Server 2005. Cet article approfondira ce problème et expliquera les raisons qui le sous-tendent.

Conclusion : Aucune différence de performances

Contrairement à la croyance populaire, il n'y a pas de différence de performances significative entre COUNT(1) et COUNT(*). Les deux produisent le même résultat en termes de comptage de lignes.

Cause : l'optimiseur de SQL Server

L'optimiseur de SQL Server reconnaît que COUNT(1) et COUNT(*) renvoient les mêmes informations et optimise en conséquence. L'optimiseur traite ces deux fonctions comme des opérations triviales, ce qui signifie que l'évaluation de l'expression est extrêmement simple et n'affecte pas les performances.

Exemple

Considérez la requête suivante :

<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>

Les plans d'entrée/sortie (IO) et d'exécution sont identiques pour les deux ensembles de requêtes. Cela prouve que l'optimiseur SQL Server reconnaît l'équivalence de COUNT(1) et COUNT(*).

Résumé

En résumé, l'utilisation de COUNT(1) n'offre aucun avantage en termes de performances par rapport à COUNT(*) dans SQL Server 2005. Le système de base de données optimise les deux fonctions pour produire les mêmes résultats. Par conséquent, les développeurs peuvent choisir la syntaxe qu’ils préfèrent sans se soucier des problèmes de performances.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn