2012-10-23 1 views
5

Ich hatte die folgende SQL verwendet, um alle Jobs ohne ein Stop-Datum aufzulisten. Ich dachte, ich könnte damit alle aktiven Jobs finden. Was ich bemerkt habe, ist, dass ich eine Reihe von Jobs in dieser Tabelle mit einem null stop_execution_date habe. Einige identische Jobs (gleiche job_id) werden in dieser Tabelle mehrmals wiederholt.Was bedeutet es, Jobs mit einem Null-Stop-Datum zu haben?

select job.*, activity.* 
from msdb.dbo.sysjobs_view job 
inner join msdb.dbo.sysjobactivity activity 
on (job.job_id = activity.job_id) 
where run_Requested_date is not null and stop_execution_date is null 

Als ich EXEC msdb.dbo.sp_help_job auf diesen Jobs laufen, ich sehe, dass sie der aktuelle Ausführungsstatus inaktiv ist.

Was bedeuten diese Jobs? Ist dies das Verhalten, wenn die Jobs nicht ordnungsgemäß beendet werden?

Antwort

4

Jedes Mal, wenn der SQL-Agent gestartet wird, wird eine neue Zeile in syssessions eingefügt und anschließend werden alle ausgeführten Jobs diese session_id in sysjobactivity erhalten. Für Ihre Jobs, die ein Null-Stop-Datum haben, nehme ich an, dass sie nicht für die "aktuelle" Sitzung sind, was bedeutet, dass sie immer noch ausgeführt wurden, als der Agent gestoppt wurde.

+2

Ich stimme dem Kommentar zu ** sysessions ** zu - es ist notwendig zu bestimmen, welche Jobs gerade laufen von ** sysjobactivity **. Ein NULL-Stop-Datum in der aktuellen Sitzung bedeutet jedoch, dass der Job gerade ausgeführt wird. – efesar

+1

In der ursprünglichen Frage, das Plakat sagte, dass der sp_help_job die Jobs als Leerlauf zeigte. Aber du hast Recht, das ist ein weiterer Fall, in dem das Enddatum NULL sein würde. –

Verwandte Themen