Mat*_*ino 3 sql-server execution-plan parameter plan-cache sql-server-2016
我发现,通过查询存储,一个查询平均执行 297582 次逻辑读取。
我想看看我是否能够稍微调整该查询,然后尝试再次执行该查询以查看是否有任何改进。
问题是我在缓存计划中找不到编译参数值。
我错过了什么吗?也许是一些阻止参数值缓存的原因/设置?
即使我以 XML 格式打开执行计划,我也找不到参数。
附加信息:查询由第三方应用程序执行,该应用程序准备语句,然后使用sp_prepare
和执行它们sp_execute
。
sp_prepare
不包括参数的编译值,因为它不会“嗅探”它们。当使用它发出查询时,使用密度向量而不是统计直方图进行基数估计。
我最近在这里写了一篇关于这个的博客:
为什么 sp_prepare 在性能方面不如 sp_executesql“好”
如果您阅读了博客文章,则会对我在此答案中使用的一些术语进行更多解释。