我需要每30秒执行一次存储过程。我在Application_Start(object sender, EventArgs e)
中注册一个方法,每30秒运行一次。此存储过程需要很长时间才能执行。问题是先前的执行是否完成,下一次迭代是否再次尝试执行sp。这导致一些超时问题。
在sql server中执行下一次迭代之前,有没有办法等待上一次执行完成?
答案 0 :(得分:2)
我通常在这种场合使用Sql Agent。它会自动完成你想做的事。
如果那不是一个选项,你可以使用信号量标志。 SP所做的第一件事就是检查一个表/字段是否正在进行中。如果它为0则SP更新为1,如果它已经为1,则SP退出。在SP结束时,它将被设置回0。