2009-05-14 10 views

risposta

64

L'agente SQL Server controlla se il lavoro è già in esecuzione prima di iniziare una nuova iterazione. Se si dispone di un lavoro di lunga durata e la relativa pianificazione viene visualizzata, verrà saltata fino all'intervallo successivo.

Puoi provarlo tu stesso. Se provi ad avviare un lavoro che è già in esecuzione, riceverai un errore in tal senso.

+0

Impressionante, questo è esattamente quello che volevo sapere. Ho un controllo e-mail che a volte richiede un po 'di tempo per scaricare e-mail di grandi dimensioni. Poiché viene eseguito ogni minuto, è molto importante che una seconda istanza del lavoro non venga avviata se il primo non è ancora stato completato. –

+0

C'è un modo per ottenere questo, voglio dire evitare il salto e avviare un'altra istanza del lavoro? O potrebbe semplicemente essere fatto creando un altro lavoro SQL? Grazie –

3

Sono abbastanza sicuro che salterà se è in esecuzione.

2

Quale versione di SQL Server stai utilizzando? Sembra una cosa abbastanza facile da testare. Configura un lavoro con un WAITFOR al suo interno che inserisce una singola riga in una tabella e imposta il lavoro in modo che venga eseguito due volte in rapida successione (più breve di WAITFOR DELAY).

Durante l'esecuzione di un test di questo tipo in SQL Server 2005, l'esecuzione è stata ignorata.

+0

stavo pensando di farlo, ma sembrava più facile google e ... voilà – Paul

Problemi correlati