Partager via


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 d'opérateur Stream AggregateIcô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

Nouveau contenu :
  • Ajout de la section Exemples.
Contenu mis à jour :
  • Clarification de la description de l'opérateur Stream Aggregate.