清除缓存后SQL Server快速查询

时间:2018-01-30 11:07:18

标签: sql sql-server performance

我在Microsoft SQL Server 2012上运行查询时遇到问题。

此查询从不同商店中选择商品,并在不到一个月的时间内运行良好,不到一秒钟。

几个星期前,这个查询突然开始需要很长时间才能完成 - 50秒或更长时间 - 但只适用于我们的一家商店。

如果我清除了这个SELECT语句的查询计划缓存,那么查询只需不到一秒钟即可完成。

不幸的是,这个问题只是偶尔发生,只发生在我们的高效服务器上,所以我没有机会分析问题。

几周前我重新启动了服务器,问题直到昨天(每三天一次)才发生。

您对我有什么想法或建议解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

这绝对看起来像是一个参数嗅探问题。

Read more about Parameter Sniffing

您可以尝试以下选项。

1-在使用的SQL Server存储过程或函数上使用虚拟变量。

2-使用RECOMPILE选项修改SP。

3-使用OPTION(RECOMPILE)或OPTION(OPTIMIZE FOR(@ VARIABLE = VALUE))等提示

4-禁用SQL实例上的参数嗅探。

您可以在MSDN上详细了解推荐和解决方法here