上一篇中,简单的说明了下 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读取完全相同。