【问题标题】:SQL Server query fast after clearing cache清除缓存后 SQL Server 查询快速
【发布时间】:2018-07-09 05:58:59
【问题描述】:

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

此查询从不同商店中选择文章并在几个月内运行良好,不到一秒。

几周前,这个查询突然开始需要很长时间才能完成 - 50 秒或更长时间 - 但仅针对我们的一家商店。

如果我清除这条SELECT 语句的查询计划缓存,那么查询将花费不到一秒的时间再次完成。

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

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

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

【问题讨论】:

标签: sql sql-server performance


【解决方案1】:

这绝对是一个参数嗅探问题。

Read more about Parameter Sniffing

您可以尝试以下选项。

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

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

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

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

您可以在 MSDN 上阅读更多关于此的建议和解决方法here

【讨论】:

    猜你喜欢
    • 2010-12-24
    • 2015-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-14
    • 2022-01-19
    • 2022-11-29
    相关资源
    最近更新 更多