sql server作业定时执行机制结论:本周期执行成功后才会开启下一周期的作业
创建一下存储过程:以下代码单独执行两次时,11000毫秒时输出的数字分别是199529 186870
create PROCEDURE [dbo].[p_a_test] AS BEGIN SET NOCOUNT ON; declare @orderindex int =1,@plan_quantity int= 100000,@begintime datetime=getdate(),@endtime datetime,@cha int declare @a varchar(50)=convert(varchar,@begintime,21) exec p_bd_sql_log '存储过程开始执行','p_a_test',@orderindex,@a; while @orderindex <= @plan_quantity begin --print @orderindex; set @endtime = getdate();print convert(varchar,@endtime,21); set @cha =datediff(ms,@begintime,@endtime); if @cha = 11000 begin declare @b varchar(50)=convert(varchar,@endtime,21); exec p_bd_sql_log '存储过程11000豪秒时输出的值','p_a_test',@orderindex,@a,@b; end set @orderindex=@orderindex+1; end END
创建定时作业:每10秒执行一次
查看作业的执行日志:由日志记录可得,存储过程执行一次(循环10万次)需要执行大约1分钟左右得时间,而作业执行得开始时间也不是我设定得每10秒执行一次。
所以结论就是:sqlserver 定时作业执行机制是【本周期执行成功后才会开启下一周期的作业】