我想,
当我在存储过程中使用临时表时,存储过程 将自动重新编译。
请给我其他可能性。
答案 0 :(得分:3)
一切都在这里:Execution Plan Caching and Reuse在“重新编制执行计划”
部分下答案 1 :(得分:3)
Optimizing SQL Server Stored Procedures to Avoid Recompiles
答案 2 :(得分:0)
这里的其他2个答案(通过@KM。和@gbn)列出了SQL使缓存的计划“无效”的原因。
“无效”是指导致现有计划需要重新编译的原因。
但是,我认为重新编译的#1重复原因是缓存的计划不再存在。
这可能是由于:
以下是上面#3的重要链接(清除缓存的方法可以手动完成):
我从上面的链接中得出的结论是搜索您的工作和存储过程中是否包含以下内容:
我曾经在各种数据库中工作过,很幸运能看到我的存储过程的缓存计划持续不超过24小时(通常少得多),所以到第二天,所有内容都需要重新编译。 / p>
根据我的经验,缓存可以工作,但是通常只在工作日几个小时之内,所以不要指望您的计划会持续到那以后。