是否可以在O(1)时间内从表中获取行数?

时间:2016-11-17 19:25:09

标签: sql sql-server tsql

在SQL Server中,显然获取表中行数的一种方法是

SELECT COUNT(*) FROM MyTable

但我假设O(n)时间n是行数。我可以访问哪些元数据存储了行数?

1 个答案:

答案 0 :(得分:3)

是的,你可以使用sys.partitions,它可能不是确切的数字,但速度非常快:

SELECT SUM(rows) 
FROM sys.partitions
WHERE [object_id] = OBJECT_ID('dbo.MyTable')
AND index_id IN (0,1);