查询慢一小时左右,99%的时间不到100毫秒

时间:2013-06-28 17:21:23

标签: sql database performance

我正在对一个慢速查询进行故障排除,它在99%的时间内在不到100毫秒的时间内运行,但是在一小时内(或者两个没有模式,我猜),变坏并且进行600万次读取需要11秒!我看到了查询计划,它确实进行了聚簇索引扫描,我注意到cached_plans动态管理视图使用计数列每次查询执行时都会不断增加,所以我在想它同样的计划,只是想知道为什么它一下子就会消失-of-捶!任何指针都会有所帮助。我没有尝试任何东西,因为它大部分时间都运行得很快。

1 个答案:

答案 0 :(得分:1)

首先,某些内容很容易阻止查询,使其运行缓慢。 Otr可能会在服务器上同时发生其他大量资源消耗的事情。

接下来,查询的参数可能对保存的执行计划不利。

或者统计信息可能已过期

或者,如果查询是动作查询而不是选择,则特定参数可能导致触发器出现问题,导致需要更长时间。

或者查询可能有时会返回更多有意义的结果。如果你在10运行它并返回10个结果并且导入会将更多记录表符合查询条件,那么在10:30你可能会返回一百万个结果,这显然会更慢。

在这种情况下,我喜欢做的一件事是设置日志记录,以便在执行时记录确切的查询。然后你可以看到运行缓慢的查询是什么,如果你有可变性,可能与运行不同。