Condividi tramite


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 dell'operatore Stream AggregateIcona 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

Assistenza su SQL Server 2005

Cronologia modifiche

Versione Cronologia

17 luglio 2006

Nuovo contenuto:
  • Aggiunta della sezione Esempi.
Contenuto aggiornato:
  • Chiarimento della descrizione dell'operatore Stream Aggregate.