创建存储过程时的WITH RECOMPILE 选项

2月 3rd, 2011

RECOMPILE:

指示数据库引擎不缓存该过程的计划,该过程在运行时编译.如果指定了 FOR REPLICATION,则不能使用此选项.对于CLR 存储过程,不能指定 RECOMPILE.

若要指示数据库引擎放弃存储过程内单个查询的计划,请使用 RECOMPILE 查询提示.如果非典型值或临时值仅用于属于存储过程的查询子集,则使用 RECOMPILE 查询提示.

 

查询提示:

查询提示指定应在整个查询中使用指示的提示.查询提示影响到语句中的所有运算符.如果主查询中涉及 UNION,则只有涉及 UNION 运算符的最后一个查询才能有 OPTION 子句.查询提示作为 OPTION 子句的一部分指定.如果一个或多个查询提示导致查询优化器不能生成有效计划,则引发 8622 错误.

注意:由于 SQL Server 查询优化器通常会为查询选择最佳执行计划,因此我们建议资深开发人员和数据库管理员只有在不得已时才可使用提示.

标签:
目前还没有任何评论.