2012-10-23 13 views
5

Użyłem następującego kodu SQL do wyświetlenia wszystkich zadań bez daty zatrzymania. Pomyślałem, że mogę to wykorzystać, aby znaleźć wszystkie aktywne zadania. Zauważyłem, że mam wiele zadań w tej tabeli z zerową stop_execution_date. Niektóre identyczne zadania (ten sam job_id) są powtarzane wiele razy w tej tabeli.Co to znaczy, że praca ma zerową datę zakończenia?

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 

Kiedy biegnę EXEC msdb.dbo.sp_help_job na tych miejsc pracy, widzę, że obecny stan wykonanie jest bezczynny.

Co oznaczają te miejsca pracy? Czy to zachowanie, gdy zadania nie są zabijane prawidłowo?

Odpowiedz

4

Za każdym razem, gdy Agent SQL się uruchamia, umieszcza nowy wiersz w syssessions, a następnie każde uruchamianie zadań otrzyma ten identyfikator_sesji w sysjobactivity. W przypadku zadań, które mają zerową datę zakończenia, domyślam się, że nie są one przeznaczone do "bieżącej" sesji, co oznaczałoby, że nadal działały, gdy agent był zatrzymany.

+2

Zgadzam się z komentarzem na temat ** syssessions ** - konieczne jest ustalenie, które zadania są aktualnie uruchomione od ** sysjobactivity **. Jednak data zatrzymania NULL w bieżącej sesji oznacza, że ​​zadanie jest aktualnie uruchomione. – efesar

+1

W oryginalnym pytaniu na plakacie napisano, że sp_help_job pokazał pracę jako bezczynną. Ale masz rację, to jest inny przypadek, w którym data zakończenia będzie NULL. –