Operatore Showplan Stream Aggregate
Data aggiornamento: 17 luglio 2006
L'operatore Stream Aggregate raggruppa alcune righe in base a una o più colonne e quindi calcola una o più espressioni di aggregazione restituite dalla query. È possibile fare riferimento all'output di questo operatore negli operatori successivi della query, restituirlo al client oppure eseguire entrambe queste operazioni. L'operatore Stream Aggregate richiede che l'input sia ordinato in base alle colonne sulle quali viene eseguito il raggruppamento. Prima di questo operatore, Query Optimizer utilizza un operatore Sort se i dati non già stati ordinati tramite un operatore Sort precedente oppure una ricerca o una scansione di un indice ordinato. Nell'istruzione SHOWPLAN_ALL o nel piano di esecuzione grafico in SQL Server Management Studio le colonne incluse nel predicato GROUP BY sono elencate nella colonna dell'argomento, mentre le espressioni di aggregazione sono elencate nella colonna DefinedValues.
Stream Aggregate è un operatore fisico.
Icona del piano di esecuzione grafico
Esempi
Nell'esempio seguente vengono selezionati alcuni dati della tabella SalesPerson
e viene eseguita un'aggregazione dei valori in base al territorio per le colonne Bonus
e SalesYTD
. L'output del piano di esecuzione indica che Query Optimizer utilizza l'operatore Stream Aggregate per raggruppare le righe della tabella SalesPerson
in base alla colonna TerritoryID
e quindi calcolare i valori per le colonne AVG(Bonus)
e SUM(SalesYTD)
in base a tale raggruppamento.
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;
Di seguito è riportato l'output del piano di esecuzione dell'operatore 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])
Vedere anche
Attività
Procedura: Visualizzazione di un piano di esecuzione effettivo
Concetti
Guida di riferimento agli operatori logici e fisici
Visualizzazione di piani di esecuzione tramite le opzioni SET SHOWPLAN (Transact-SQL)
Altre risorse
Funzioni di aggregazione (Transact-SQL)
Guida in linea e informazioni
Cronologia modifiche
Versione | Cronologia |
---|---|
17 luglio 2006 |
|