Stream Aggregate プラン表示操作
更新 : 2006 年 7 月 17 日
Stream Aggregate 操作は、1 つ以上の列を基準にして行をグループ化し、クエリから返される 1 つ以上の集計式を計算します。この操作の出力は、クエリ内のその後の操作から参照することも、クライアントに返すことも、あるいはその両方を行うこともできます。Stream Aggregate 操作を使用するには、グループ内で列を基準にして入力を並べ替えておく必要があります。並べ替えられたインデックスのシークまたはスキャンが原因で、または前の Sort 操作が原因でデータがまだ並べ替えられていない場合は、オプティマイザによって、この操作の前に Sort 操作が使用されます。SQL Server Management Studio の SHOWPLAN_ALL ステートメントまたはグラフィカルな実行プランで、GROUP BY 述語の列は Argument 列に一覧表示され、集計式は DefinedValues 列に一覧表示されます。
Stream Aggregate は物理操作です。
グラフィカルな実行プランのアイコン
例
次の例では、SalesPerson
テーブルからデータを選択し、Bonus
列および SalesYTD
列の値を地域ごとに集計します。実行プランの出力では、クエリ オプティマイザが Stream Aggregate 操作を使用して、TerritoryID
列を基準にして SalesPerson
テーブルの行をグループ化し、そのグループ分けに基づいて AVG(Bonus)
列および SUM(SalesYTD)
列の値を集計していることが示されています。
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;
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])
参照
処理手順
概念
論理操作と物理操作のリファレンス
プラン表示 SET オプションを使用した実行プランの表示 (Transact-SQL)
その他の技術情報
ヘルプおよび情報
変更履歴
リリース | 履歴 |
---|---|
2006 年 7 月 17 日 |
|