我在尝试查找仍在某个时间范围内运行或已经运行的作业的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
答案 0 :(得分:0)
我使用Adam Machanic的sp_WhoIsActive获取此信息
sp_WhoIsActive
对于历史数据,我每分钟运行一次并将输出捕获到表中。
布伦特·奥扎尔有一篇关于如何做到这一点的文章Here