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