上一篇中,簡單的說明瞭下 count() 與 sum() 的區別,雖然count 函數是彙總行數的,不過我彙總行數的時候經常是使用SUM(1) ,那麼問題來了,count(1) 與 sum(1) 那個更快? 讓我們比較SUM和COUNT的性能:示例使用的是SQl server 官方示例資料庫 下麵是 ...
上一篇中,簡單的說明瞭下 count() 與 sum() 的區別,雖然count 函數是彙總行數的,不過我彙總行數的時候經常是使用SUM(1) ,那麼問題來了,count(1) 與 sum(1) 那個更快?
讓我們比較SUM和COUNT的性能:示例使用的是SQl server 官方示例資料庫
USE AdventureWorks2014 GO SET STATISTICS IO ON GO -- Use of SUM -- Original Query SELECT SUM(CASE WHEN SalesOrderID > 50 THEN 1 ELSE 0 END) FROM [Sales].[SalesOrderDetail] WHERE ProductID > 750 GO -- Use of COUNT -- New Proposed Query SELECT COUNT(CASE WHEN SalesOrderID > 50 THEN 1 ELSE 0 END) FROM [Sales].[SalesOrderDetail] WHERE ProductID > 750 GO
下麵是執行計劃的對比圖:
您可以看到執行計劃完全相同且完全相同。
讓我們看看統計數據的輸出。
可以觀察到IO讀取完全相同。