日期:2014-05-19  浏览次数:20492 次

储存过程中WITH RECOMPILE的问题
WITH   RECOMPILE   到底有什么用啊

msdn是这样说的
如果为过程提供的参数不是典型的参数,并且新的执行计划不应被缓存或存储在内存中,则   WITH   RECOMPILE   子句会很有用。

但什么典型的参数,执行计划根本看不懂

------解决方案--------------------
创建存储过程时在其定义中指定 WITH RECOMPILE 选项,表明 SQL Server 将不对该存储过程计划进行高速缓存;该存储过程将在每次执行时都重新编译。当存储过程的参数值在各次执行间都有较大差异,导致每次均需创建不同的执行计划时,可使用 WITH RECOMPILE 选项。此选项并不常用,因为每次执行存储过程时都必须对其进行重新编译,这样会使存储过程的执行变慢。