在我的SQL Server查询中,我尝试获取2秒范围的数据:
DECLARE @runtime AS datetime
SELECT @runtime = '2014-02-15 03:34:17'
SELECT Application FROM commandcip
WHERE
commandname = 'RunTestCase' AND
(createdate BETWEEN DATEADD(s, -1, @runtime) AND DATEADD(s, 1, @runtime))
该命令非常慢,需要花费几分钟,并且基于性能分析器的估计子树成本为2800。
另一方面,如果我手动计算范围,查询将非常快(估计子树成本= 0.5,查询时间<1秒):
SELECT Application FROM commandcip
WHERE
commandname = 'RunTestCase' AND
createdate BETWEEN '2014-02-15 03:34:16' AND '2014-02-15 03:34:18'
我验证了这两个命令都返回了正确的数据。我确认我的DATEADD
命令返回了正确的日期。我也试图让DATEADD
一步迟早(成独立的变量@mindate
,@maxdate
),但它并没有帮助。
如何在不手动计算范围的情况下加快第一次查询的速度?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句