SUM(row_count)FROM sys.dm_db_partition_stats非常慢

时间:2017-12-06 12:52:04

标签: sql-server query-performance

我正在调整我们的应用程序,并发现我们的瓶颈之一是先前的性能调整。

要获取我们使用的所有表中的行数

SELECT SUM (row_count)
FROM sys.dm_db_partition_stats
WHERE object_id=OBJECT_ID('{0}')
AND (index_id=0 or index_id=1);

有评论表明这是因为count(*)太慢了。然而,这目前需要500ms才能返回。现在每个表大约500毫秒,无论大小如何,因此与count(*)相比,50行表占用0ms,2M行表占用200ms,50M行表占用900ms。

50M行表是一个例外,几乎其他表几乎都是成千上万,所以我很想去算数(*)

我的问题是:dm_db_partition_stats选择是否预期会很慢,但无论表有多大都会返回?或者这不是预期的,我可以为此做点什么。

0 个答案:

没有答案