-- 建立測試 Index
CREATE INDEX IX_SalesOrderDetail_ProductID ON [Sales].[SalesOrderDetail] (ProductID)
INCLUDE(OrderQty)
-- 常使用的 Group By 彙總方式
SELECT
ProductID ,
SUM(OrderQty) AS OrderQty
FROM [Sales].[SalesOrderDetail]
WHERE ProductID = 707
GROUP BY ProductID
-- 視窗函數彙總方式
SELECT
DISTINCT
ProductID ,
SUM(OrderQty) OVER (PARTITION BY ProductID ORDER BY ProductID)
FROM [Sales].[SalesOrderDetail]
WHERE ProductID = 707
以上兩種方式可以獲得相同結果,但在效能上會有差異statistics io 比較
視窗函數執行計畫
視窗函數執行計畫
沒有留言:
張貼留言