Вся информация о Job`ах хранится в системной БД msdb. Например весь их перечень находится в таблице msdb.dbo.sysjobs. Ход выполнения конкретного джоба можно отслеживать через системные представления, при этом не только отслеживая, когда и под кем он был запущен, а так же кто его блокирует в данный момент и даже текущий запрос, который выполняется в этом джобе.
select j.name -- Имя задания , r.session_id -- Идентификатор сеанса, к которому относится данный запрос , r.start_time -- Временная метка поступления запроса , r.status -- Состояние запроса , r.blocking_session_id -- Идентификатор сеанса, блокирующего данный запрос , r.wait_time -- Если запрос в настоящий момент блокирован, -- в столбце содержится продолжительность текущего ожидания (в миллисекундах) , r.cpu_time -- Процессорное время (в миллисекундах), затраченное на выполнение запроса , r.total_elapsed_time -- Общее время, истекшее с момента поступления запроса (в миллисекундах) , r.reads -- Число операций чтения, выполненных данным запросом , r.writes -- Число операций записи, выполненных данным запросом , r.logical_reads -- Число логических операций чтения, выполненных данным запросом , t.text -- Текст SQL-запроса from sys.dm_exec_requests r inner join sys.dm_exec_sessions s on r.session_id = s.session_id cross apply sys.dm_exec_sql_text ( sql_handle ) t inner join msdb.dbo.sysjobs j on s.program_name like '%' + master.dbo.fn_varbintohexstr( j.job_id ) + '%' where j.name = N'Имя задания' Вариант для SQL Server 2005 и выше.
select
j.
name
-- Имя задания
, r.session_id
-- Идентификатор сеанса, к которому относится данный запрос
, r.start_time
-- Временная метка поступления запроса
, r.status
-- Состояние запроса
, r.blocking_session_id
-- Идентификатор сеанса, блокирующего данный запрос
, r.wait_time
-- Если запрос в настоящий момент блокирован,
-- в столбце содержится продолжительность текущего ожидания (в миллисекундах)
, r.cpu_time
-- Процессорное время (в миллисекундах), затраченное на выполнение запроса
, r.total_elapsed_time
-- Общее время, истекшее с момента поступления запроса (в миллисекундах)
, r.reads
-- Число операций чтения, выполненных данным запросом
, r.writes
-- Число операций записи, выполненных данным запросом
, r.logical_reads
-- Число логических операций чтения, выполненных данным запросом
, t.text
-- Текст SQL-запроса
from
sys.dm_exec_requests r
inner
join
sys.dm_exec_sessions s
on
r.session_id = s.session_id
cross
apply sys.dm_exec_sql_text ( sql_handle ) t
msdb.dbo.sysjobs j
s.program_name
like
'%'
+ master.dbo.fn_varbintohexstr( j.job_id ) +
where
= N
'Имя задания'
Вариант для SQL Server 2005 и выше.