¿Un trabajo de SQL Server omitirá una ejecución programada si ya se está ejecutando?


Si programa un trabajo de SQL Server para que se ejecute cada X número de minutos, y no termina la llamada anterior antes de que el número de minutos haya terminado, ¿omitirá la ejecución ya que ya se está ejecutando, o ejecutará dos instancias del trabajo haciendo los mismos pasos?

Author: ThinkingStiff, 2009-05-14

3 answers

El agente de SQL Server comprueba si el trabajo ya se está ejecutando antes de iniciar una nueva iteración. Si tiene un trabajo en ejecución largo y su horario aparece, se omitiría hasta el siguiente intervalo.

Puedes probar esto por ti mismo. Si intenta iniciar un trabajo que ya se está ejecutando, obtendrá un error en ese sentido.

 68
Author: Jose Basilio,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-05-14 19:11:36

Estoy bastante seguro de que se saltará si se está ejecutando.

 3
Author: PQW,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-05-14 18:49:18

¿Qué versión de SQL Server está utilizando? Esto parece una cosa bastante fácil de probar. Configure un trabajo con un WAITFOR que inserte una sola fila en una tabla y configure el trabajo para que se ejecute dos veces en rápida sucesión (más corto que el RETRASO WAITFOR).

Al ejecutar una prueba de este tipo en SQL Server 2005 se omitió la ejecución que se superpuso.

 2
Author: Tom H,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-05-14 19:15:21