Comprendre les performances du nombre SQL (*)
Considérons une requête qui exécute une opération de comptage sur une table de plus de 20 millions de lignes. Le temps d'exécution varie considérablement en fonction de l'expression de comptage, avec des retards importants pour les expressions qui nécessitent une comparaison (par exemple, count(*) = 1).
Cause première des exécutions lentes
L'explication de cette différence de performances réside dans la technique d'optimisation employée par SQL Server. Pour la première requête (count() = 0), le serveur l'optimise pour vérifier la présence d'éventuelles lignes (exists(select from BookChapters)) plutôt que de les compter.
Dans En revanche, pour les autres requêtes (count() = 1 ou count() > 1), SQL Server utilise un index non clusterisé pour compter les rangées. Cependant, comme la table dans ce cas ne dispose d'aucun index non clusterisé, le serveur doit analyser la table entière, ce qui entraîne un temps d'exécution substantiel.
Améliorations des performances
Pour améliorer les performances des requêtes count(*) :
Alternative Méthodes pour un décompte rapide des lignes
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!