清除缓存后SQL Server快速查询

清除缓存后SQL Server快速查询,sql,sql-server,performance,Sql,Sql Server,Performance,我在Microsoft SQL Server 2012上运行的查询有问题 此查询从不同的商店中选择商品,并在不到一秒钟的时间内连续几个月正常运行 几周前,这个查询突然开始花费很长时间来完成——50秒或更长时间——但只对我们的一家商店如此 如果我为这条SELECT语句清除查询计划缓存,那么再次完成查询只需不到一秒钟的时间 不幸的是,这个问题只偶尔发生,而且只发生在我们的生产服务器上,所以我没有机会分析这个问题 几周前我重新启动了服务器,直到昨天(每三天之前)才出现问题 你有什么想法或建议可以帮我解

我在Microsoft SQL Server 2012上运行的查询有问题

此查询从不同的商店中选择商品,并在不到一秒钟的时间内连续几个月正常运行

几周前,这个查询突然开始花费很长时间来完成——50秒或更长时间——但只对我们的一家商店如此

如果我为这条
SELECT
语句清除查询计划缓存,那么再次完成查询只需不到一秒钟的时间

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

几周前我重新启动了服务器,直到昨天(每三天之前)才出现问题


你有什么想法或建议可以帮我解决这个问题吗?

这看起来确实像是一个参数嗅探问题

您可以尝试以下选项

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

2-使用重新编译选项更改SP

3-使用选项(重新编译)或选项(优化(@VARIABLE=VALUE))等提示

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


您可以在MSDN上阅读更多关于此的信息,以获得建议和解决方法

参数嗅探?在生产中清除缓存不是一个好主意。如果它对所有列都很快,那么请查看统计数据中的行分布。了解以下内容:统计数据更新问题?参数嗅探猜测,关于此主题的规范阅读: