Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как узнать время начала выполнения джоба  [new]
missing.fox
Member

Откуда:
Сообщений: 264
Доброго времени суток, коллеги.
Есть задача, надо написать процедуру или функцию, на входе которой имя джоба и возвращала бы время последнего старта этого джоба.
Есть такая процедура msdb.dbo.sp_help_jobhistory, но она бесполезна ...
Может есть какая вьюха или процедура, ведь в хистори всё показано по шагам, значит это есть ...
Кто знает, подскажите.

Заранее спасибо.
2 авг 12, 09:39    [12950266]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать время начала выполнения джоба  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
missing.fox,

автор
но она бесполезна ...


Интересно, почему это?
2 авг 12, 09:48    [12950305]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать время начала выполнения джоба  [new]
missing.fox
Member

Откуда:
Сообщений: 264
run_date это понятно, дата
run_time время начала выполнения конкретного шага
run_duration длительность выполнения этого конкретного шага
больше со временем и датой нет полей
более того, эта процедура не возвращает номер шага.

Теперь пример:
мы не знаем сколько шагов у джоба и не знаем сколько раз он выполняется в день, может раз в день, может раз в минуту.
таким образом, нельзя проследить первый шаг, операясь на данные, возвращаемые этой процедурой.
Вот.

Поэтому и вопрос, есть ли что-то ещё?
2 авг 12, 09:55    [12950330]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать время начала выполнения джоба  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31912
missing.fox
мы не знаем сколько шагов у джоба и не знаем сколько раз он выполняется в день, может раз в день, может раз в минуту.
таким образом, нельзя проследить первый шаг, операясь на данные, возвращаемые этой процедурой.
Вот.

Поэтому и вопрос, есть ли что-то ещё?
У этой процедуры есть параметр @mode

Если поставить @mode = 'FULL', то всё будет
2 авг 12, 10:20    [12950444]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать время начала выполнения джоба  [new]
missing.fox
Member

Откуда:
Сообщений: 264
Спасибо за полный, исчерпывающий ответ.
2 авг 12, 10:32    [12950534]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать время начала выполнения джоба  [new]
kiujgtr
Guest
missing.fox,

"Как узнать время начала выполнения джоба ?"

Создать первый step типа:

EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'start at', 
		@step_id=1, 
		@cmdexec_success_code=0, 
		@on_success_action=3, 
		@on_success_step_id=0, 
		@on_fail_action=3, 
		@on_fail_step_id=0, 
		@retry_attempts=0, 
		@retry_interval=0, 
		@os_run_priority=0, @subsystem=N'TSQL', 
		@command=N'--', 
		@database_name=N'master', 
		@flags=0

Отрабатывает моментально, после чего в логах появляется запись о его окончании.
Оно же является временем старта job.
3 авг 12, 23:26    [12961181]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить