【问题标题】:What does it mean to have jobs with a null stop date?有空停止日期的工作意味着什么?
【发布时间】:2012-10-23 19:22:18
【问题描述】:

我使用以下 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 时,我看到它们当前的执行状态是空闲的。

这些工作代表什么?这是作业未正确终止时的行为吗?

【问题讨论】:

    标签: sql sql-server


    【解决方案1】:

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

    【讨论】:

    • 我同意关于 syssessions 的评论——有必要从 sysjobactivity 确定当前正在运行的作业。但是,当前会话中的 NULL 停止日期表示作业当前正在运行。
    • 在原始问题中,发帖人说 sp_help_job 显示作业空闲。但你是对的,这是结束日期为 NULL 的另一种情况。
    猜你喜欢
    • 2013-01-05
    • 2023-03-10
    • 1970-01-01
    • 2015-09-15
    • 2020-06-21
    • 1970-01-01
    • 2013-07-22
    • 1970-01-01
    相关资源
    最近更新 更多