sql - 关于提高 SQL 查询计数性能的建议?

标签 sql sql-server performance count

由于类似于以下内容的选择,我的查询需要很长时间才能运行:

SELECT 
Count( Distinct t1.v1),
Count (Distinct 
Case t2.v1 When 'blah' then t1.v1
Else null
End ),
....
FROM t1
LEFT JOIN t2 ON t1.v3 = t2.v3
WHERE t1.myDate BETWEEN @start and @end
AND t2.v5 = @id

有人可以建议任何提高这种性能的好方法吗?

最佳答案

由于此查询上没有Where子句谓词(没有过滤器),因此无论您做什么,它都将涉及完整的表扫描或索引扫描(除非内部联接限制结果集...)。

因此,您可以获得的唯一改进可能是影响正在执行的联接类型。为了提高连接的性能,请确保 t1.v3 和 t2.v3 列上有索引......

关于sql - 关于提高 SQL 查询计数性能的建议?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1948306/

相关文章:

c++ - 如果内部的总工作相同,将 for 循环拆分为多个 for 循环的开销是多少?

sql - 将多个记录(行)合并为单个记录(行)

sql-server - 如何将大量数据从一个表复制到同一数据库中的另一个表?

performance - 根据不同的硬件速度算法的效率?

sql - 使用 split 函数在单独的行中显示每个值

java - 如何将值从sql数据库设置到java文本框?

python - 提高性能 - 符号函数应用于 numpy 数组的每一行

java - 如果 DB2 中不存在表,则创建表

c# - ExecutenonQuery 不工作

sql - T-SQL 从列中获取文件扩展名