Couple of SQL Server Agent questions

  • Hi all,

    Suppose I have 10 jobs set up. If I use 10 schedules to schedule all 10 jobs to run at the same time, will they execute in parallel? or, at least, as much parallelism as the CPU can handle?

    Similarly, if I have the 10 jobs set up using a single schedule, will they execute in parallel, or will they now go in series, from first to last?

    Finally, let's say I have a job which is executing a process that gets caught in an infinite loop. Say the schedule invokes the job every hour. The next time the job gets invoked, will it also execute, thus potentially causing an overload of the system, or will it wait until the previous instance finishes before launching a new one, or will it just discard the job?

  • 10 jobs on 10 different schedules, or on the same schedule execute asynchronously.

    If you are referring to a scenario where 10 different "jobs" are implemented as 10 separate steps of one Agent job then they will execute in series.

    If the job is still running when the schedule comes up again it will not be executed again.

    The probability of survival is inversely proportional to the angle of arrival.

  • Excellent! Thanks for the answers!

  • The schedules are only for the re-use of the data, not for the execution. As Mr. Turner has noted, Jobs execute in parallel, or asynchronously of one another, regardless of schedule. They are not re-entrant, meaning that if job "MyAgentJob" is set to run every minute, starts at 1:00, and it takes 61 sec to run, it will not start executing at 1:01. It will skip that start and run again at 1:02.

    If I have "MyAgentJob2" set on the same schedule, and it takes 20sec to run, it will run at 1:00 and 1:01, and 1:02.

    The steps, however, execute in series, one after the other, according to the settings for "when this step succeeds" and "this step fails" settings.

Viewing 4 posts - 1 through 3 (of 3 total)

You must be logged in to reply to this topic. Login to reply