我正在使用SQL Server 2008,最近才开始在查询数据库时遇到间歇性问题。
由于查询速度慢,我每天至少有一次与我们的许多应用程序超时。没有特别的时间发生这种情况;有时在早上,有时在下午。每次我开始解决问题时,它都会在几分钟内解决。
通常我使用此查询:
SELECT Name FROM Demographics WHERE Name IS NOT NULL
它在<中运行1秒。但是,在这些“问题时间”期间,查询将花费大约3分钟。一旦查询完成,我可以再次运行它,它可以正常工作(几乎立即)。
此外,当上面的查询正在运行时,我可以使用:
从人口统计信息中选择姓名
它完美运行。没有延迟。唯一的区别是WHERE
子句。那么,我在哪里开始排查?我应该使用哪些工具来查找原因?
提前致谢。
答案 0 :(得分:2)
要做的第一件事是查看查询的执行计划。为此,请在Management Studio中打开查询窗口,然后在“查询”菜单中选择“包括实际执行计划”。运行您的查询,然后转到执行计划选项卡并保存计划。
当您看到性能问题时,请重复这些步骤。然后,加载两个执行计划,并比较它们以查看不同的内容。如果存在差异,他们可能会指出您找到问题的正确方向。
答案 1 :(得分:1)
在故障期间查看您是否被其他进程阻止。