Amélioration des requêtes de comptage distinct sur plusieurs colonnes
Le comptage de valeurs distinctes sur plusieurs colonnes est une exigence courante dans l'analyse des données. Une façon d'y parvenir consiste à utiliser une sous-requête comme indiqué dans l'extrait de code fourni. Cependant, cette approche peut potentiellement avoir un impact sur les performances.
Solution alternative : colonnes calculées persistantes
Pour améliorer les performances de ces requêtes, envisagez d'utiliser des colonnes calculées persistantes. Une colonne calculée persistante calcule et stocke une valeur basée sur une expression définie. Dans ce cas, vous pouvez créer une colonne calculée qui combine les deux colonnes à l'aide d'une fonction de hachage ou d'une concaténation :
ALTER TABLE DocumentOutputItems ADD ComputedColumn AS HASHBYTES('MD5', DocumentId + ',' + DocumentSessionId) PERSISTED
Une fois persistante, la colonne calculée devient une colonne indexée et déterministe qui peut être utilisée pour des requêtes rapides. . En comptant les valeurs distinctes de cette colonne calculée, vous pouvez obtenir le même résultat que l'approche par sous-requête :
SELECT COUNT(DISTINCT ComputedColumn) FROM DocumentOutputItems
Avantages :
Remarque : L'efficacité de cette approche dépend de la distribution des données et de la configuration appropriée des paramètres de la base de données.
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!