我们的应用程序中有以下SQL命令。
SELECT trackerid,taskid,action,sendto, sendtofullname, recfrom, actiontime
FROM [LO].[dbo].[TRACKER] WITH (NOLOCK)
where [EVENTRECORDID] = ? and ACTION in (1,4,5,15,4000,4200)
order by Actiontime
它跑了一段时间而且非常快,但是最后几天它变得极端缓慢。 我把它改成了
SELECT trackerid,taskid,action,sendto, sendtofullname, recfrom, actiontime
FROM [LO].[dbo].[TRACKER]
where [EVENTRECORDID] = ? and ACTION in (1,4,5,15,4000,4200)
order by Actiontime
所以我删除了WITH(NOLOCK)部分。
又变得快了。它让我有任何意义,我不知道,为什么它有这种行为。我也担心它会再次变慢。 有人可以向我解释一下吗?
数据库服务器是MS SQL 2008
由于
答案 0 :(得分:0)
我比较了执行计划,它们是相同的。
我想到了一件事。每天晚上我们执行索引重组(每周一次索引重建)。但在重组索引后,我们忘记了更新统计数据。可以有一些联系吗?