Maison > base de données > tutoriel mysql > Count(*) vs Count(1) dans SQL Server : existe-t-il une différence de performances ?

Count(*) vs Count(1) dans SQL Server : existe-t-il une différence de performances ?

Barbara Streisand
Libérer: 2025-01-23 18:22:08
original
655 Les gens l'ont consulté

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

*SQL Server : Count() vs Count(1) – Une analyse des performances**

De nombreux utilisateurs de SQL s'interrogent sur la différence de performances entre COUNT(*) et COUNT(1). Les deux fonctions comptent les lignes, mais y a-t-il un réel impact sur les performances ?

Dans SQL Server (en particulier dans les versions à partir de 2005), la réponse est simple : aucune différence de performances significative n'existe.

La documentation de Microsoft précise que COUNT(*) compte toutes les lignes d'un tableau (ou celles répondant à une condition spécifiée). Surtout, COUNT(1)—car « 1 » est une expression non nulle – donne le même résultat.

L'optimiseur de requêtes SQL Server reconnaît cette équivalence. Il traite les deux fonctions de la même manière, ce qui entraîne le même plan d'exécution, les mêmes opérations d'E/S et, finalement, les mêmes performances.

Considérez ces exemples :

<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>
Copier après la connexion

L'exécution de ces requêtes produira des résultats identiques, confirmant l'équivalence fonctionnelle de COUNT(*) et COUNT(1). Par conséquent, le choix entre eux est en grande partie une question de style de codage ou de préférence personnelle ; cela n'aura pas d'impact sur les performances des requêtes dans SQL Server.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal