存储过程执行中的Stange行为,只有sp_recompile有帮助

时间:2018-01-09 17:21:15

标签: sql-server tsql

我注意到sql server中存储过程执行中的奇怪行为。突然之间,它没有结束了更长的时间。 SP通过SSIS包从另一台服务器调用。 SP没有输入参数,所以我们不能指望参数嗅探。但是SP使用临时变量来声明一个表。从temp变量中丢失统计信息可能会导致执行计划的突然变化和sp运行缓慢。

但是为什么只重新编译SP在这里有所帮助。每天我必须在运行之前重新编译sp,否则它会显示相同的行为,运行时间越来越长(没有结束)。

我的问题是:为什么sp_recompile每天需要快速运行?

1 个答案:

答案 0 :(得分:0)

您可以使用重新编译提示,但我强烈建议(因为重新编译存储过程会在服务器上加载,并且如果执行计划缓存已满,则每次重新编译都会导致丢弃其中一个缓存的执行计划,这可能会导致丢弃良好的执行计划。)尝试观察执行计划的变化,找出执行计划效率低下的原因。