2012-10-23 21 views
5

Durma tarihi olmadan tüm işleri listelemek için aşağıdaki SQL'i kullandım. Tüm aktif işleri bulmak için bunu kullanabileceğimi düşündüm. Fark ettiğim, bu tabloda null stop_execution_date ile bir dizi işim olması. Bazı özdeş işler (aynı job_id) bu tabloda birçok kez tekrarlanır. Ben bu işlerde EXEC msdb.dbo.sp_help_job çalıştırdığınızdaBoşta durma tarihi olan işlerin olması ne demektir?

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 

, ben şimdiki yürütme durumu boşta onlar görüyoruz.

Bu işler neler gösterir? İşler düzgün bir şekilde öldürmediğinde davranış bu mu?

cevap

4

SQL Ajan her başladığında, bu syssessions yeni bir satır koyar ve daha sonra herhangi bir iş sysjobactivity o session_id alacak çalıştırın. Boş durma tarihine sahip işleriniz için tahminim, "mevcut" oturum için değil, ajan durdurulduğunda hala çalışıyor oldukları anlamına geliyor.

+2

ben ** syssessions ** hakkında yorum katılıyorum - işler şu anda ** sysjobactivity kaçıyoruz belirlemek için gereklidir **. Ancak, geçerli oturumda bir NULL bitiş tarihi, şu anda çalışmakta olduğu anlamına gelir. – efesar

+1

Özgün soruda, poster sp_help_job işlerini boşta gösterdiğini söyledi. Ama haklısınız, bu, bitiş tarihinin NULL olduğu başka bir durumdur. –