首页 > 数据库 > mysql教程 > SQL Server 中的 Count(*) 与 Count(1):是否存在性能差异?

SQL Server 中的 Count(*) 与 Count(1):是否存在性能差异?

Barbara Streisand
发布: 2025-01-23 18:22:08
原创
625 人浏览过

Count(*) vs. Count(1) in SQL Server: Is There a Performance Difference?

*SQL Server:Count() 与 Count(1) – 性能分析**

许多 SQL 用户想知道 COUNT(*)COUNT(1) 之间的性能差异。 这两个函数都对行进行计数,但是对性能有真正的影响吗?

在 SQL Server(特别是 2005 年以后的版本)中,答案很简单:不存在显着的性能差异。

Microsoft 的文档阐明 COUNT(*) 计算表中的所有行(或满足指定条件的行)。 至关重要的是,COUNT(1)(因为“1”是非空表达式)产生相同的结果。

SQL Server 查询优化器识别这种等价关系。 它以相同的方式对待这两个函数,从而产生相同的执行计划、I/O 操作以及最终的性能。

考虑这些例子:

<code class="language-sql">SELECT COUNT(1) FROM dbo.tab800krows;
SELECT COUNT(1), FKID FROM dbo.tab800krows GROUP BY FKID;

SELECT COUNT(*) FROM dbo.tab800krows;
SELECT COUNT(*), FKID FROM dbo.tab800krows GROUP BY FKID;</code>
登录后复制

执行这些查询将产生相同的结果,从而确认 COUNT(*)COUNT(1) 的功能等效。 因此,它们之间的选择很大程度上取决于编码风格或个人喜好;它不会影响 SQL Server 中的查询性能。

以上是SQL Server 中的 Count(*) 与 Count(1):是否存在性能差异?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板