Se si pianifica un processo di SQL Server per eseguire ogni X numero di minuti e non finisce la chiamata precedente prima che il numero # sia scaduto, salterà l'esecuzione poiché è già in esecuzione o eseguirà due istanze del lavoro facendo gli stessi passi?Un lavoro di SQL Server salterà un'esecuzione pianificata se è già in esecuzione?
risposta
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.
Sono abbastanza sicuro che salterà se è in esecuzione.
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.
stavo pensando di farlo, ma sembrava più facile google e ... voilà – Paul
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. –
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 –