我正在探索计划指南主题。听起来很简单,只要我们浏览文档中的示例。
问题是我找不到任何工作示例(我自己也没有设法弄清楚)为存储过程或过程中的语句设置固定计划。
我已经阅读了很多博客文章,但它们都只是从微软文档中复制/粘贴示例。
任何人更有创意/经验丰富?
我正在探索计划指南主题。听起来很简单,只要我们浏览文档中的示例。
问题是我找不到任何工作示例(我自己也没有设法弄清楚)为存储过程或过程中的语句设置固定计划。
我已经阅读了很多博客文章,但它们都只是从微软文档中复制/粘贴示例。
任何人更有创意/经验丰富?
下面是一个使用计划指南为过程中的语句强制执行计划的示例:
现在使用强制连接策略生成此语句的执行计划:
复制执行计划 XML 并将其粘贴到查询窗口。用(四个单引号)替换任何出现的'(单引号)。''''
sp_create_plan_guide 过程的最终参数将采用以下形式:
现在您可以看到为什么要使用四个引号:转义一次以将 XML 放入字符串文字中,转义两次以将 XML 放入另一个字符串文字中的字符串文字中。
确保将 XML 计划粘贴在 之后
OPTION (USE PLAN N''
:任何空格或换行符都会使其无效。在深入挖掘之后,我在 Itzik Ben-Gans 等人中找到了替代解决方案。T-SQL 编程书籍。他的解决方案使用sp_create_plan_guide_from_handle。