我注意到sql server中存储过程执行中的奇怪行为。突然之间,它没有结束了更长的时间。 SP通过SSIS包从另一台服务器调用。 SP没有输入参数,所以我们不能指望参数嗅探。但是SP使用临时变量来声明一个表。从temp变量中丢失统计信息可能会导致执行计划的突然变化和sp运行缓慢。
但是为什么只重新编译SP在这里有所帮助。每天我必须在运行之前重新编译sp,否则它会显示相同的行为,运行时间越来越长(没有结束)。
我的问题是:为什么sp_recompile
每天需要快速运行?
答案 0 :(得分:0)
您可以使用重新编译提示,但我强烈建议(因为重新编译存储过程会在服务器上加载,并且如果执行计划缓存已满,则每次重新编译都会导致丢弃其中一个缓存的执行计划,这可能会导致丢弃良好的执行计划。)尝试观察执行计划的变化,找出执行计划效率低下的原因。