我的表 Eli 有 100 万条记录。当我查询以下内容时:
Select count(*) from Eli where userId ='my_user'
给出结果需要 10 多分钟。我在网上搜索并从 http://dbatipster.blogspot.com/2009/08/get-row-counts-fast.html
找到了优化查询的更好方法。
我如何在上面的查询中使用以下查询-
SELECT OBJECT_NAME(i.id) [Table_Name], i.rowcnt [Row_Count]
FROM sys.sysindexes i WITH (NOLOCK)
WHERE i.indid in (0,1)
ORDER BY i.rowcnt desc
最佳答案
在不涉及正确构建表格的情况下,我会使用这样的东西:
SELECT COUNT(userID) FROM Eli (NOLOCK)
WHERE userId ='my_user'
(NOLOCK)
提示允许您从表中进行选择,而无需提交针对 Eli 表的其他事务,这意味着您无需等待其他更新和插入完成即可返回结果。
关于sql - 优化 select count(*) from table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36923923/