Share via


Stream Aggregate (operador de Showplan)

Actualizado: 17 de julio de 2006

El operador Stream Aggregate agrupa las filas por una o varias columnas y, a continuación, calcula una o varias expresiones agregadas devueltas por la consulta. Los operadores posteriores de la consulta pueden hacer referencia al resultado de este operador, devolverse al cliente, o ambas cosas. El operador Stream Aggregate requiere que la información esté ordenada por las columnas dentro de sus grupos. Primero, el optimizador usará un operador Sort anterior a este operador si los datos no están ordenados por un operador Sort anterior o por un Index Seek o análisis con ordenación. En la instrucción SHOWPLAN_ALL o en el plan de ejecución gráfico de SQL Server Management Studio, las columnas del predicado GROUP BY se enumeran en la columna Argument y las expresiones agregadas se enumeran en la columna DefinedValues.

Stream Aggregate es un operador físico.

Icono del operador Stream AggregateIcono del plan de ejecución gráfico

Ejemplos

En el siguiente ejemplo, se seleccionan datos de la tabla SalesPerson y se agregan los valores de las columnas Bonus y SalesYTD por territorio. La salida del plan de ejecución muestra que el optimizador de consultas usa el operador Stream Aggregate para agrupar las filas de la tabla SalesPerson por la columna TerritoryID y, a continuación, calcula los valores de las columnas AVG(Bonus) y SUM(SalesYTD) en función de esa agrupación.

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;

A continuación se muestra la salida del plan de ejecución del operador Stream Aggregate.

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])

Vea también

Tareas

Cómo mostrar un plan de ejecución real

Conceptos

Referencia sobre operadores lógicos y físicos
Mostrar planes de ejecución mediante las opciones SET del plan de presentación (Transact-SQL)

Otros recursos

Funciones de agregado (Transact-SQL)

Ayuda e información

Obtener ayuda sobre SQL Server 2005

Historial de cambios

Versión Historial

17 de julio de 2006

Contenido nuevo:
  • Se agregó la sección Ejemplos.
Contenido actualizado:
  • Se ha mejorado la descripción del operador Stream Aggregate.