上一篇中,簡單的說明了下 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讀取完全相同。