我正在使用SQL Server 2008,刚刚开始在查询数据库时出现间歇性问题。使用WHERE子句时,间歇性的查询速度慢
至少每天一次,我因为查询速度缓慢而导致很多应用程序超时。这没有特别的时间,有时在早上,有时在下午。每次我开始解决问题时,它都会在几分钟内解决问题。
通常我使用此查询:
SELECT名字从人口统计学WHERE名称IS NOT NULL
,并在<1秒运行。但是,在这些“问题时间”期间,查询需要大约3分钟的时间。一旦查询完成,我可以再次运行它并且工作得很好(几乎是即时)。
而且,上面的查询运行时,我可以用这个:
SELECT名字从人口统计学
,它运行完美。没有延迟。唯一的区别是WHERE
条款。那么,我该从哪里开始排除故障?我应该使用哪些工具来查找原因?
在此先感谢。
感谢有关执行计划的信息。事实证明,当我比较两者时几乎没有什么区别。我会接受这个答案,因为它帮助最大。 – Travis 2010-11-12 17:24:41
如果计划之间没有很大的差异,那么问题很可能是由服务器上的其他进程引起的。您可以尝试通过使用带有“持续时间”列上的筛选器的SQL事件探查器来跟踪这些事件,以便仅返回超过10秒的查询。然后,当问题发生时,查看配置文件数据以查看查询运行缓慢时是否发生了其他事情。 – 2010-11-12 20:21:45