Wie schreibe ich ein Skript, um laufende Jobs in SQL Server mit Jobstartzeit zu sehen?
SELECT sj.name,
sja.run_requested_date,
CONVERT(VARCHAR(12), sja.stop_execution_date-sja.start_execution_date, 114) Duration
FROM msdb.dbo.sysjobactivity sja
INNER JOIN msdb.dbo.sysjobs sj
ON sja.job_id = sj.job_id
WHERE sja.run_requested_date IS NOT NULL
ORDER BY sja.run_requested_date desc;
sql-server
sql-server-agent
Zerbug
quelle
quelle
Antworten:
Ich habe vor einiger Zeit eine Abfrage gepostet, um eine Liste der aktuell ausgeführten Jobs hier abzurufen .
Dies hat Jobname, Job-ID, Startzeit und welchen Schritt es läuft. Wenn Sie dem obigen Link folgen, können Sie mehr Details darüber erfahren, wie ich darauf gekommen bin und was noch verfügbar ist.
quelle
Auf einem meiner Server sind Probleme beim Abfragen von MSDB-Tabellen (auch als Code bezeichnet) aufgetreten, da einer meiner Jobs ausgeführt werden würde, dies war jedoch nicht der Fall. Es gibt eine gespeicherte Systemprozedur, die den Ausführungsstatus zurückgibt, aber eine insert exec-Anweisung kann nicht ohne Fehler ausgeführt werden. Darin befindet sich eine andere gespeicherte Systemprozedur, die mit einer insert exec-Anweisung verwendet werden kann.
Und die Tabelle, in die es geladen werden soll:
quelle
Auf diese Weise erhalten Sie den Jobnamen sowie das Ausführungsdatum und die Ausführungszeit. Sie können das Datum entfernen, wenn Sie nur den Namen und die Ausführungszeit anzeigen möchten.
quelle
Dieses Skript zeigt die aktuell ausgeführten Jobs sowie den aktuell ausgeführten Schritt an:
quelle
Das folgende Skript gibt Folgendes zurück:
quelle
Es ist ein wenig um die Häuser herum, aber macht den Trick
quelle