【问题标题】:Fetching the duration of Current running SQL Server JOB获取当前运行 SQL Server JOB 的持续时间
【发布时间】:2012-10-10 07:57:25
【问题描述】:

获取 SQL Server 中当前正在运行的作业的持续时间。

exec msdb..sp_help_job @execution_status = 1
exec xp_sqlagent_enum_jobs 1, garbage

这些存储过程只返回“last_run_time”,这是作业最后一次运行。

【问题讨论】:

  • 从上次运行开始,您无法计算出持续时间? datediff(minute,<when it ran>,getdate())
  • 实际上它给了我们“何时运行”=上次成功运行的时间而不是当前运行的时间!
  • 好吧我没用过xp_sqlagent_enum_jobs。我一般直接去msdb..sysjobhistory
  • 是的msdb..sysjobhistory 也只提供上次运行时间的先前作业。正如其名称显示的作业历史。
  • 你确定你试过了吗? msdn.microsoft.com/en-us/library/aa260416(v=sql.80).aspx那里有“进行中”的状态

标签: sql sql-server-2008-r2 jobs


【解决方案1】:

msdb.dbo.sysjobs master.dbo.sysprocesses

我通过加入上述表格并从进程中获取登录时间来实现此结果。

【讨论】:

    猜你喜欢
    • 2017-01-19
    • 1970-01-01
    • 2023-03-03
    • 2015-05-17
    • 1970-01-01
    • 2021-05-16
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    相关资源
    最近更新 更多