SQL查询超时。但是,重命名任何索引后,它都可以工作

时间:2017-08-14 15:24:54

标签: sql sql-server sql-server-2005

我们有这个查询,多年来一直有效。

几个月前,它开始提供超时。

但是,如果我们重命名索引(在其名称中添加一些字符)并再次运行查询,则可以正常工作。日复一日,我们必须这样做。我们每天都重命名一个索引,然后再次查询。

问题是什么?我们如何解决这个问题?重命名索引如何解决超时问题?

1 个答案:

答案 0 :(得分:2)

这些症状表明由于参数嗅探,正在使用次优的缓存查询计划。重命名索引会使缓存的计划无效,因此在下次使用时会生成一个新的,这对于查询参数值是最佳的。

SQL Server documentation中所述,<node><phrase>North Korea</phrase></node>OPTION(RECOMPILE)之类的查询提示可以避免参数嗅探。