sql - 优化 select count(*) from table

标签 sql sql-server

我的表 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/

相关文章:

java - 使用 jooq 创建直方图

sql - 在动态 ORDER BY 中将 nvarchar 转换为 int 时出错

sql-server - SQL Server 找不到我的函数

sql-server - 在sql中使用循环创建多个表

将列合并为一个的 SQL 函数

SQL Server Case 语句在用户定义的函数中给我错误

java - 发生异常后,如何使用 PostgreSQL 在 Spring Boot 中继续事务?

python - 如何从 Python 中的 SQL 查询字符串中删除引号?

sql - 如何在没有额外 XML 开销的情况下在 T SQL 中对 XML 进行编码

java - MSSQL中的编码问题