【问题标题】:How to find spid of SQL Agent job that is running or has already run?如何查找正在运行或已经运行的 SQL 代理作业的 spid?
【发布时间】:2017-02-10 05:13:24
【问题描述】:

我在尝试查找仍在某个时间范围内运行或已经运行的作业的 SPID 时遇到了困难。有谁知道我在哪里可以找到那个?我知道我可以查看 master.sys.sysprocesses 表来找到 SQL Server 已知的 spid。

这是我的许多尝试之一:

SELECT        TOP (100) PERCENT sj.name, sja.run_requested_date, CONVERT(VARCHAR(12), sja.stop_execution_date - sja.start_execution_date, 114) AS Duration, sj.job_id, sj.enabled
FROM            msdb.dbo.sysjobactivity AS sja INNER JOIN
                         msdb.dbo.sysjobs AS sj ON sja.job_id = sj.job_id
WHERE        (sja.run_requested_date IS NOT NULL) AND (CONVERT(VARCHAR(12), sja.stop_execution_date - sja.start_execution_date, 114) > CONVERT(VARCHAR(12), '00:00:02:000', 114))
ORDER BY sja.run_requested_date DESC

【问题讨论】:

    标签: sql sql-server tsql sql-job


    【解决方案1】:

    我使用 Adam Machanic 的 sp_WhoIsActive 来获取此信息。

    对于历史数据,我每分钟运行一次并将输出捕获到表格中。 Brent Ozar 有一篇关于如何做到这一点的文章here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-03
      • 1970-01-01
      • 2019-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-26
      相关资源
      最近更新 更多