Comptage des valeurs distinctes sur plusieurs colonnes
Pour compter le nombre d'éléments distincts en fonction de plusieurs colonnes dans une table, considérez la requête suivante :
SELECT COUNT(DISTINCT DocumentId, DocumentSessionId) FROM DocumentOutputItems
Cette requête compte efficacement les combinaisons distinctes de DocumentId et DocumentSessionId, fournissant le résultat.
Approches alternatives
Bien que la requête fournie offre une solution simple, des approches alternatives peuvent améliorer les performances dans certains scénarios :
Utilisation Colonnes calculées persistantes :
Pour de meilleures performances, une colonne calculée persistante peut être créé sur la base d'un hachage ou d'une concaténation de DocumentId et DocumentSessionId. Cela permet à la base de données d'indexer et de créer des statistiques sur la colonne calculée.
ALTER TABLE DocumentOutputItems ADD ComputedColumn AS HASHBYTES('MD5', DocumentId + DocumentSessionId) PERSISTED
Une fois la colonne calculée remplie, un décompte distinct sur celle-ci sera équivalent à la requête d'origine :
SELECT COUNT(DISTINCT ComputedColumn) FROM DocumentOutputItems
En optimisant la structure de la base de données et en minimisant le nombre de requêtes, ces approches peuvent améliorer les performances d'opérations de comptage distinctes sur plusieurs colonnes.
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!