6

我使用以下 SQL 列出了所有没有停止日期的作业。我想我可以用它来找到所有活跃的工作。我注意到我在这个表中有许多作业,并且 stop_execution_date 为空。一些相同的作业(相同的 job_id)在此表中重复多次。

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

当我EXEC msdb.dbo.sp_help_job在这些作业上运行时,我看到它们当前的执行状态是空闲的。

这些工作代表什么?这是工作没有被正确杀死时的行为吗?

4

1 回答 1

6

每次 SQL 代理启动时,它都会在 syssessions 中添加一个新行,随后运行的任何作业都将在 sysjobactivity 中获取该 session_id。对于具有空停止日期的作业,我的猜测是它们不适用于“当前”会话,这意味着它们在代理停止时仍在运行。

于 2012-10-23T20:30:14.587 回答