2017-02-10 90 views
0

我在嘗試查找仍在特定時間範圍內運行或已經運行的作業的SPID時遇到困難。有誰知道我在哪裏可以找到?我知道我可以查看master.sys.sysprocesses表來查找SQL Server已知的spid。如何查找正在運行或已經運行的SQL Agent作業的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

我用亞當Machanic的sp_WhoIsActive得到這個信息。
sp_WhoIsActive
對於歷史數據,我每分鐘運行一次並將輸出捕獲到表中。 Brent Ozar有關於如何做到這一點的文章Here

相關問題