sql-server - sp_executesql 使用错误的执行计划

标签 sql-server performance

我有一个查询,无需 EXEC sp_executesql 即可立即获取结果, 但是当我使用 sp_executesql 时,sql server 使用不同的执行计划,并且需要超过 5 分钟才能获得结果。

我还尝试了 EXEC sp_updatestatsdbcc freeproccache,但 sp_executesql 选择了错误的执行计划。

当我使用OPTION (RECOMPILE)时,它会立即得到结果,但我不想在每个查询中使用OPTION (RECOMPILE)

如何让sp_executesql选择正确的执行计划?

最佳答案

您描述的问题可能是 parameter sniffing 的结果。您应该查看有关此主题的一些现有帖子:

关于sql-server - sp_executesql 使用错误的执行计划,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37006539/

相关文章:

python - 内部列表中的第一项尽可能高效

javascript - Ajax 请求/响应 : how to make them lightning fast?

performance - Haskell 并行运行速度较慢

C# 字典循环增强

CSS 性能

python - 尚不支持 ODBC SQL 类型 -155

sql-server - 使用 LIKE 和 EXISTS 子句时优化数据库架构/索引以获得更快的查询结果

asp.net - 使用 Date 与 DateTime 时是否需要考虑性能或存储差异?

sql - 选择 SQL 中前 25% 值的平均值

sql - 带有图像字段的图片项的单独表格