¿Que pasa cuando un Job de SQL Server se ejecuta por mas tiempo que el tiempo indicado en el periodo? Por ejemplo cundo tienen un job que se ejecuta cada 10 minutos y le toma 35 minutos completarse al anterior… ¿Se vuelve a ejecutar aunque este todavía corriendo el anterior?
Microsoft ha publicado en el foro interno de MVPs de SQL Server, dos notas sobre el diseño del Agente de SQL Server que nos ayudan a responde esta cuestión. Primero, El Agente de SQL Server solo ejecuta una instancia de un job cada vez. Segundo, el Agente de SQL Server calcula la próxima fecha de ejecución del job al finalizar este. Entonces, si la ejecución de una consulta dura mas del intervalo entre repeticiones, al finalizar calculara la siguiente repetición hacia adelante en el tiempo, ignorando las repeticiones perdidas.
Por ejemplo, imaginen un Job que se ejecuta cada 1 minuto, empezando a las 13.25, pero demora 1 minuto y 45 segundos en finalizar. El job se estará ejecutando a las 13.26 cuando se debería de repetir, pero como el Agente de SQL Server solo permite una instancia de Job, esta no se ejecutara y al finalizar a las 13.26.45 calculara la siguiente ejecución para las 13.27 basándose en el intervalo de un minuto mencionado.
Gracias a Brian Moran de SQL Server Pro