统计表的行数,这个大家都知道使用select count(*) from table ,但是随着表的增长,这个统计的效率越来越低了。
试下下面的语句吧,能快速获取多少行,还能提供一些其他表信息,如索引类型,分区数等
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
-- 快速获取表信息.
SELECT Object_schema_name(p.object_id) AS [Schema],
Object_name(p.object_id) AS [Table],
i.name AS [Index],
p.partition_number,
p.rows AS [Row Count],
i.type_desc AS [Index Type]
FROM sys.partitions p
INNER JOIN sys.indexes i
ON p.object_id = i.object_id
AND p.index_id = i.index_id
WHERE Object_schema_name(p.object_id) <> 'sys'
-- AND Object_name(p.object_id) = 'table_1' --获取某个表
ORDER BY [Schema],
[Table],
[Index]