2009-05-14 16 views

Antwort

64

Der SQL Server-Agent überprüft, ob der Job bereits ausgeführt wird, bevor eine neue Iteration gestartet wird. Wenn Sie einen Job mit langer Laufzeit haben und dessen Zeitplan angezeigt wird, wird er bis zum nächsten Intervall übersprungen.

Sie können dies für sich selbst ausprobieren. Wenn Sie versuchen, einen Job zu starten, der bereits ausgeführt wird, erhalten Sie einen entsprechenden Fehler.

+0

Ehrfürchtig, genau das wollte ich wissen. Ich habe einen E-Mail-Checker, der manchmal eine Weile braucht, um große E-Mails herunterzuladen. Da jede Minute ausgeführt wird, ist es sehr wichtig, dass eine zweite Instanz des Jobs nicht gestartet wird, wenn der erste noch nicht abgeschlossen ist. –

+0

Gibt es eine Möglichkeit, dies zu erreichen, ich meine, das Überspringen zu vermeiden und eine andere Instanz des Jobs zu starten? Oder könnte man einfach einen anderen SQL-Job erstellen? Danke –

3

Ich bin mir ziemlich sicher, es wird es überspringen, wenn es läuft.

2

Welche Version von SQL Server verwenden Sie? Das scheint eine ziemlich einfache Sache zu sein, die man testen kann. Richten Sie einen Job mit einem WAITFOR ein, der eine einzelne Zeile in eine Tabelle einfügt und den Job so konfiguriert, dass er zweimal hintereinander ausgeführt wird (kürzer als WAITFOR DELAY).

Beim Ausführen eines solchen Tests in SQL Server 2005 übersprang er den Lauf, der überlappt wurde.

+0

Ich überlegte, dies zu tun - aber es schien einfacher zu googeln und .. voila – Paul

Verwandte Themen