由于类似于以下内容的选择,我的查询需要很长时间才能运行:
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/