我正在调整我们的应用程序,并发现我们的瓶颈之一是先前的性能调整。
要获取我们使用的所有表中的行数
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选择是否预期会很慢,但无论表有多大都会返回?或者这不是预期的,我可以为此做点什么。