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

Откуда:
Сообщений: 338
Всем добрый день!

Microsoft SQL Server 2005 - 9.00.5069.00 (X64)   Aug 22 2012 18:02:46   Copyright (c) 1988-2005 Microsoft Corporation  Standard Edition (64-bit) on Windows NT 5.2 (Build 3790: Service Pack 2) 


Хочу понять в каком виде хранятся условия для расписания по которому выполняется job.
В таблице msdb..sysjobschedules хранятся только данные о дате и времени следующего запуска, а я хотела бы видеть как выглядят условия для расписания, в какой структуре хранятся. Например, если у меня есть job который запускается раз в неделю по вторникам - как это условие выглядит в виде таблицы или в какой структуре это условие лежит?

Мне это нужно, чтобы построить свою структуру для создания и гибкого управления расписаниями разных событий на SQL Server.
24 июл 13, 16:18    [14611781]     Ответить | Цитировать Сообщить модератору
 Re: Как хранится расписание job  [new]
Glory
Member

Откуда:
Сообщений: 104751
sysschedules
24 июл 13, 16:20    [14611808]     Ответить | Цитировать Сообщить модератору
 Re: Как хранится расписание job  [new]
byverka
Member

Откуда:
Сообщений: 338
Glory, спасибо!
Попытаюсь разобраться в этой куче параметров :)
24 июл 13, 16:27    [14611883]     Ответить | Цитировать Сообщить модератору
 Re: Как хранится расписание job  [new]
byverka
Member

Откуда:
Сообщений: 338
Благо в BOL все описано! Спасибо еще раз!
24 июл 13, 16:31    [14611915]     Ответить | Цитировать Сообщить модератору
 Re: Как хранится расписание job  [new]
byverka
Member

Откуда:
Сообщений: 338
Glory, а может вы подскажите, какой хранимой процедурой выполняется UPDATE полей next_run_date и next_run_time таблицы msdb..sysjobschedules - если он вообще выполняется именно sql процедурой. Мне удалось только найти код на vb.
25 июл 13, 12:04    [14615358]     Ответить | Цитировать Сообщить модератору
 Re: Как хранится расписание job  [new]
Glory
Member

Откуда:
Сообщений: 104751
Дату следующего запуска определяет Агент
После окончания работы джоба или после его изменения
25 июл 13, 13:41    [14616073]     Ответить | Цитировать Сообщить модератору
 Re: Как хранится расписание job  [new]
byverka
Member

Откуда:
Сообщений: 338
Glory, мне интересен сам скрипт, который производит вычисление даты следующего запуска. Искала во всех хп msdb - того нужно нет
25 июл 13, 14:12    [14616269]     Ответить | Цитировать Сообщить модератору
 Re: Как хранится расписание job  [new]
Гость333
Member

Откуда:
Сообщений: 3683
byverka,

How and when does SQL Agent update next_run_date/next_run_time values?
25 июл 13, 14:31    [14616424]     Ответить | Цитировать Сообщить модератору
 Re: Как хранится расписание job  [new]
byverka
Member

Откуда:
Сообщений: 338
Гость333, к сожалению это тоже не то. Я хотела бы видеть скрипт, который из строчки в таблице msdb..sysschedules (которая представляет из себя расписание запуска job) получает дату следующего запуска next_run_date в таблице msdb..sysjobschedules.
Как эту строку распарсить, чтобы получилась дата следующего запуска? Не хочется изобретать велосипед, а воспользоваться имеющимся механизмом.
25 июл 13, 15:15    [14616746]     Ответить | Цитировать Сообщить модератору
 Re: Как хранится расписание job  [new]
Гость333
Member

Откуда:
Сообщений: 3683
select
   case
      when next_run_date = 0
      then null
      else dateadd(second, next_run_time/10000 * 3600 + next_run_time%10000/100 * 60 + next_run_time%100, cast(cast(next_run_date as char(8)) as datetime))
   end as next_run_datetime, *
from msdb.dbo.sysjobschedules
25 июл 13, 16:10    [14617197]     Ответить | Цитировать Сообщить модератору
 Re: Как хранится расписание job  [new]
byverka
Member

Откуда:
Сообщений: 338
Гость333, вы меня опять не поняли. Представьте, что у меня вообще нет таблицы msdb.dbo.sysjobschedules. У меня есть msdb..sysschedules в которой много полей с префиксом freq_. Вот в этих полях и зашифровано расписание запуска job. Мне интересно как их этой строчки получается дата следующего запуска job.
25 июл 13, 18:17    [14618088]     Ответить | Цитировать Сообщить модератору
 Re: Как хранится расписание job  [new]
X-Cite
Member

Откуда: Минск
Сообщений: 1840
http://msdn.microsoft.com/ru-ru/library/ms178644(v=sql.105).aspx

Если посмотреть код ХП сервера, то нет универсальной процедуры, везде идет все через CASE
например
IF freq_type = 1
Парсим остальные поля по одному правилу
IF freq_type = 4
Парсим остальные поля по другому правилу
и.т.п.
25 июл 13, 18:38    [14618172]     Ответить | Цитировать Сообщить модератору
 Re: Как хранится расписание job  [new]
X-Cite
Member

Откуда: Минск
Сообщений: 1840
А зная значения этих полей на их основании вы можете сами расчитать время следующего запуска.
25 июл 13, 18:40    [14618182]     Ответить | Цитировать Сообщить модератору
 Re: Как хранится расписание job  [new]
byverka
Member

Откуда:
Сообщений: 338
X-Cite
http://msdn.microsoft.com/ru-ru/library/ms178644(v=sql.105).aspx

Если посмотреть код ХП сервера, то нет универсальной процедуры, везде идет все через CASE
например
IF freq_type = 1
Парсим остальные поля по одному правилу
IF freq_type = 4
Парсим остальные поля по другому правилу
и.т.п.


Подскажите, где вы этот код нашли, мне бы на него глянуть! ????
На самом деле я уже так все и расписала, через CASE, но посмотреть как это в самой СУБД реализовано - очень интересно!
29 июл 13, 13:03    [14631570]     Ответить | Цитировать Сообщить модератору
 Re: Как хранится расписание job  [new]
X-Cite
Member

Откуда: Минск
Сообщений: 1840
byverka,

Например тут:
msdb..sp_verify_schedule

Но парсер в БД я писал для себя сам.
29 июл 13, 17:31    [14633475]     Ответить | Цитировать Сообщить модератору
 Re: Как хранится расписание job  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31984
byverka
Подскажите, где вы этот код нашли, мне бы на него глянуть! ????

use msdb
select * from sys.procedures where OBJECT_DEFINITION(object_id) like '%freq%'
29 июл 13, 22:57    [14634676]     Ответить | Цитировать Сообщить модератору
 Re: Как хранится расписание job  [new]
byverka
Member

Откуда:
Сообщений: 338
X-Cite
byverka,

Например тут:
msdb..sp_verify_schedule

Но парсер в БД я писал для себя сам.


Ну вот я тоже сама написала.
19 авг 13, 15:54    [14726332]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить