【发布时间】:2011-06-27 02:56:00
【问题描述】:
我有一个存储过程,每天运行九次,就在午夜之后。它不是一个理想的存储过程,但你知道它是怎样的。任何计划都无法与现实接触。
这个存储过程通常需要大约一分钟的时间来运行,给它处理的数据量或花费时间。但是,在给定早晨的第一次运行中,有时会花费过多的时间,有时会比通常花费的时间长一个数量级(如果它完成的话)。如果我杀死它并重新启动它,它会正常运行。
我正在为此寻找一个优雅的解决方案 - 至少比我的第一个想法更优雅,即先运行一个额外的运行,它不会生成我使用的数据并且可以容忍失败。
以前有人见过这种行为吗?你是怎么解决的?
【问题讨论】:
-
您是否使用任何动态 SQL 或非 sargable 参数?
-
缓存的存储过程执行计划是否会在一夜之间丢失?
-
@Rup: 个人统计更新
-
如果您能够将您的正常运行时间减少一半或更多,这仍然是一个问题吗?为什么需要 2 分钟才能解决问题?