如何查找正在运行或已经运行的SQL代理作业的spid?
我很难找到一个工作的SPID,它仍然在一定的时间范围内运行或者已经运行。有人知道我在哪里能找到吗?我知道我可以查看master.sys.sysprocesss表来查找SQL Server已知的spid 这是我的众多尝试之一:如何查找正在运行或已经运行的SQL代理作业的spid?,sql,sql-server,tsql,sql-job,Sql,Sql Server,Tsql,Sql Job,我很难找到一个工作的SPID,它仍然在一定的时间范围内运行或者已经运行。有人知道我在哪里能找到吗?我知道我可以查看master.sys.sysprocesss表来查找SQL Server已知的spid 这是我的众多尝试之一: SELECT TOP (100) PERCENT sj.name, sja.run_requested_date, CONVERT(VARCHAR(12), sja.stop_execution_date - sja.start_execution_date,
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
我用Adam Machanic的来获取这些信息
对于历史数据,我每分钟运行一次,并将输出捕获到表中。
Brent Ozar有一篇关于如何做到这一点的文章