Opérateur Showplan Stream Aggregate
Mis à jour : 17 juillet 2006
L'opérateur Stream Aggregate effectue un regroupement d'après une ou plusieurs colonnes et calcule une ou plusieurs expressions d'agrégation retournées par la requête. La sortie de cet opérateur peut être référencée par des opérateurs ultérieurs dans la requête, retournés au client, ou les deux. Cet opérateur exige que l'entrée suive l'ordre des colonnes dans ses groupes. L'optimiseur utilise un opérateur de tri avant cet opérateur si les données ne sont pas déjà triées en raison d'un opérateur de tri précédent ou d'une recherche ou d'une analyse d'index triée. Dans l'instruction SHOWPLAN_ALL ou le plan d'exécution graphique dans SQL Server Management Studio, les colonnes du prédicat GROUP BY sont répertoriées dans la colonne Argument, et les expressions d'agrégation sont répertoriées dans la colonne DefinedValues.
Stream Aggregate est un opérateur physique.
Icône du plan d'exécution graphique
Exemples
L'exemple suivant sélectionne des données de la table SalesPerson
et agrège les valeurs pour les colonnes Bonus
et SalesYTD
par territoire. La sortie du plan d'exécution indique que l'optimiseur de requête utilise l'opérateur Stream Aggregate pour regrouper les lignes dans la table SalesPerson
par la colonne TerritoryID
puis calcule les valeurs pour les colonnes AVG(Bonus)
et SUM(SalesYTD)
en fonction de ce regroupement.
USE AdventureWorks;
GO
SET NOCOUNT ON;
go
SET SHOWPLAN_ALL ON;
GO
SELECT TerritoryID,
AVG(Bonus) AS 'Average bonus',
SUM(SalesYTD) AS'YTD sales'
FROM Sales.SalesPerson
GROUP BY TerritoryID;
GO
SET SHOWPLAN_ALL OFF;
La sortie du plan d'exécution de l'opérateur Stream Aggregate est affichée ci-dessous.
StmtText
------------------------------------------------------------------------------------------------
|--Stream Aggregate(GROUP BY:([AdventureWorks].[Sales].[SalesPerson].[TerritoryID]) )
DEFINE:([Expr1011]=Count(*),
[Expr1012]= SUM([AdventureWorks].[Sales].[SalesPerson].[Bonus]),
[Expr1004]=SUM([AdventureWorks].[Sales].[SalesPerson].[SalesYTD])))
Argument
-----------------------------------------------------------------------------------------------
GROUP BY:([AdventureWorks].[Sales].[SalesPerson].[TerritoryID]
DefinedValues
----------------------------------------------------------------------------------------------
[Expr1011]=Count(*),
[Expr1012]=SUM([AdventureWorks].[Sales].[SalesPerson].[Bonus]),
[Expr1004]=SUM([AdventureWorks].[Sales].[SalesPerson].[SalesYTD])
Voir aussi
Tâches
Procédure : afficher un plan d'exécution réel
Concepts
Référence des opérateurs physiques et logiques
Affichage des plans d'exécution à l'aide des options Showplan SET (Transact-SQL)
Autres ressources
Fonctions d'agrégation (Transact-SQL)
Aide et Informations
Assistance sur SQL Server 2005
Historique des modifications
Version | Historique |
---|---|
17 juillet 2006 |
|