sysindex.rows 去哪儿了?

dub*_*ech 1 sql-server-2008-r2

在 SqlServer 2000 中,曾经有一个名为 sysindex 的表,它有一列行。该表现在是: -sys.indexes -sys.partitions -sys.allocation_units -sys.dm_db_partition_stats

(请参阅:http : //msdn.microsoft.com/en-us/library/ms187997.aspx)但这些表都不包含行列?那么如何知道一个索引有多少行呢?

谢谢。

Mar*_*ith 5

它仍然存在于兼容性视图中sys.sysindexes

你也可以使用

SELECT OBJECT_NAME(p.object_id), SUM(rows)
FROM sys.partitions p 
WHERE index_id < 2 and OBJECTPROPERTYEX (object_id ,'IsUserTable' ) = 1
GROUP BY p.object_id
Run Code Online (Sandbox Code Playgroud)

这不应被视为以任何方式保证准确。它包括未提交事务的影响,在堆上转发指针,并且可以使用一些未记录的参数手动更新到UPDATE STATISTICS.