我们有一个每小时更新一次的数据库。对于更新或插入的每一行使用DELETE/INSERT的应用程序进行更改。 SQL Server是2008 R2标准版。用于填充计划缓存的即席查询的SQL Server执行计划
即席查询的查询执行计划正在推出其他(更重要,更大的)执行计划,这些计划正在影响对该数据库的报告并进入数据缓存。
查看计划缓存后,我们发现(如预期的那样)SQL正在为每个查询生成一个新计划。
我的问题是,会创建一个计划指南停止SQL为每个更新生成一个新的计划?
我在缓存中看到,例如,对于float列的更新,SQL将其参数化为每次变化长度的数字,这意味着每个参数化查询都是不同的。如果我使用查询的参数化版本创建计划指南,为每个列指定正确的数据类型,这是否会强制SQL使用此计划?
我知道使用存储过程将解决这个问题,但是由于其他原因,这不是一个选项。
谢谢。
谢谢,但我忘了说,我已启用此。不幸的是我们还没有看到任何真正的改善 – Chris
你能清除proc缓存吗? (是的,提到你打开这个事实是一个遗漏......) –
3444答案,2个问题。 – dikidera