欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Sql server 中count(1) 与 sum(1) 那个更快?

程序员文章站 2022-04-15 14:04:51
上一篇中,简单的说明了下 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

下面是执行计划的对比图:

Sql server 中count(1) 与 sum(1)  那个更快?

 

您可以看到执行计划完全相同且完全相同。

让我们看看统计数据的输出。

Sql server 中count(1) 与 sum(1)  那个更快?

可以观察到io读取完全相同。