了解 SQL count(*) 性能
考虑一个对超过 2000 万行的表执行计数操作的查询。执行时间因计数表达式而异,需要比较的表达式(例如 count(*) = 1)会出现明显延迟。
执行缓慢的根本原因
造成这种性能差异的原因在于 SQL Server 采用的优化技术。对于第一个查询 (count() = 0),服务器对其进行优化以检查是否存在任何行 (exists(select from BookChapters)),而不是对它们进行计数。
中相比之下,对于其他查询(count() = 1 或 count() > 1),SQL Server 使用非聚集索引来计算行。但是,由于本例中的表缺少任何非聚集索引,因此服务器必须扫描整个表,从而导致大量执行时间。
性能改进
To提高 count(*) 查询的性能:
快速行计数的替代方法
以上是为什么 COUNT(*) 在 SQL Server 中如此慢,如何加快速度?的详细内容。更多信息请关注PHP中文网其他相关文章!