使用WHERE子句时间歇性慢查询

时间:2010-11-11 16:50:54

标签: sql-server-2008

我正在使用SQL Server 2008,最近才开始在查询数据库时遇到间歇性问题。

由于查询速度慢,我每天至少有一次与我们的许多应用程序超时。没有特别的时间发生这种情况;有时在早上,有时在下午。每次我开始解决问题时,它都会在几分钟内解决。

通常我使用此查询:

  

SELECT Name FROM Demographics WHERE Name IS NOT NULL

它在<中运行1秒。但是,在这些“问题时间”期间,查询将花费大约3分钟。一旦查询完成,我可以再次运行它,它可以正常工作(几乎立即)。

此外,当上面的查询正在运行时,我可以使用:

  

从人口统计信息中选择姓名

它完美运行。没有延迟。唯一的区别是WHERE子句。那么,我在哪里开始排查?我应该使用哪些工具来查找原因?

提前致谢。

2 个答案:

答案 0 :(得分:2)

要做的第一件事是查看查询的执行计划。为此,请在Management Studio中打开查询窗口,然后在“查询”菜单中选择“包括实际执行计划”。运行您的查询,然后转到执行计划选项卡并保存计划。

当您看到性能问题时,请重复这些步骤。然后,加载两个执行计划,并比较它们以查看不同的内容。如果存在差异,他们可能会指出您找到问题的正确方向。

答案 1 :(得分:1)

在故障期间查看您是否被其他进程阻止。