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 定时作业执行机制是【本周期执行成功后才会开启下一周期的作业

 

posted @ 2022-06-14 12:43  单纯的桃子  阅读(435)  评论(0编辑  收藏  举报