sql - 大表中的行数

标签 sql sql-server tsql

SELECT COUNT(*) FROM BigTable_1

如果我有超过 10 亿行,我应该使用哪种方式获取表中的行数?

更新:例如,如果上面的查询存在“超时问题”,是否有任何优化方法?如何更快地完成?

最佳答案

如果你需要一个精确的计数,你必须使用COUNT (*)

如果您可以粗略计数,则可以使用分区中的行总和

SELECT SUM (Rows)
FROM sys.partitions
WHERE 1=1
And index_id IN (0, 1)
And OBJECT_ID = OBJECT_ID('Database.schema.Table');

如果你想让你的 COUNT 变得有趣,你可以执行以下操作

select COUNT (1/0) from BigTable_1

关于sql - 大表中的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5747396/

相关文章:

sql-server - 用于替换本地 SQL Server 实例的云/托管数据库/数据存储服务

sql - Sql-Server 中的父子关系问题

sql - 重叠日期范围(SQL Server 2008)按天分组的最有效方法是什么?

sql - 如何在sql中实现do-while循环

mysql - 在 SQL 中向现有超过 600 万条记录的表添加额外列

mysql - 计算出现在时间间隔 2 中的时间间隔 1 中的条目数 - SQL

sql - PostgreSQL 和时间点恢复

SQL 查询在 SQL Server 2005 中的现有列后添加新列

SQL Server : Floor a date in SQL server, 但保持确定性

PHP 搜索查询