Udostępnij za pośrednictwem


Operator Showplan agregujące strumienia

Stream Aggregate Operator grupy wierszy przez jedną lub więcej kolumn, a następnie oblicza jeden lub więcej wartość zagregowana wyrażeń zwracanych przez kwerendę.Dane wyjściowe tego operator mogą odwoływać się później operatory kwerendy, zwracane do klient lub oba. Stream Aggregate Operator wymaga wprowadzania uporządkowane według kolumny w obrębie grupy.Optymalizator użyje operator sortowania przed do tego operatora, jeżeli dane nie są już sortowane z wcześniejszej Sort operatora lub z powodu zamówione indeksu wyszukiwania lub skanowania.W instrukcja SHOWPLAN_ALL lub plan wykonania graficznego w SQL Server Management Studio, w predykacie Grupuj według kolumn są wymienione w Argument kolumna oraz wartość zagregowana wyrażeń są wyświetlane w Defined Values kolumna.

Stream Aggregate jest operator fizycznej.

Ikona operatora agregacji strumieniGraficzne wykonanie planu ikony

Przykłady

Poniższy przykład wybiera danych z SalesPerson tabela i agreguje wartości dla Bonus i SalesYTD kolumny przez terytorium.Wyjście plan wykonania pokazuje, że optymalizator kwerendy używa Stream Aggregate operator do grupowanie wierszy w SalesPerson tabela przez TerritoryID kolumna i obliczyć wartości dla AVG(Bonus) i SUM(SalesYTD) kolumna oparte na tym grupowanie.

USE AdventureWorks2008R2;
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;

Wykonanie planu produkcji Stream Aggregate operator pojawia się poniżej.

StmtText

------------------------------------------------------------------------------------------------

|--Stream Aggregate(GROUP BY:([AdventureWorks2008R2].[Sales].[SalesPerson].[TerritoryID]) )

DEFINE:([Expr1011]=Count(*),

[Expr1012]= SUM([AdventureWorks2008R2].[Sales].[SalesPerson].[Bonus]),

[Expr1004]=SUM([AdventureWorks2008R2].[Sales].[SalesPerson].[SalesYTD])))

Argument

-----------------------------------------------------------------------------------------------

GROUP BY:([AdventureWorks2008R2].[Sales].[SalesPerson].[TerritoryID]

DefinedValues

----------------------------------------------------------------------------------------------

[Expr1011]=Count(*),

[Expr1012]=SUM([AdventureWorks2008R2].[Sales].[SalesPerson].[Bonus]),

[Expr1004]=SUM([AdventureWorks2008R2].[Sales].[SalesPerson].[SalesYTD])