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

Откуда: Приморье
Сообщений: 535
Привет всем. Мне нужно выполнять запрос (проуедуру) каждые 5 сек.
Job не прокатит, т.к. мин. время кругового выполнения = 10 сек.
СУБД MS SQL2008 R2

можно конечно так:
while 1=1 begin
select * from.....
waitfor delay '00:00:05'
end

но это как-то не красиво...
20 сен 13, 05:03    [14862124]     Ответить | Цитировать Сообщить модератору
 Re: Как выполнять процедуру каждые 5 сек.?  [new]
aleks2
Guest
Зато правильно.
20 сен 13, 05:48    [14862133]     Ответить | Цитировать Сообщить модератору
 Re: Как выполнять процедуру каждые 5 сек.?  [new]
Ruuu
Member

Откуда: Иркутск
Сообщений: 4272
RAMZEZ II,

Лучше, наверное, сделать в джобе два вызова процедуры через waitfor delay '00:00:05'.
А то, если в вашем цикле произойдет ошибка, то он упадет всерьез и надолго. Плюс вам придется озадачиться его логированием и уведомлениями, а в агенте это уже есть.
20 сен 13, 06:13    [14862137]     Ответить | Цитировать Сообщить модератору
 Re: Как выполнять процедуру каждые 5 сек.?  [new]
aleks2
Guest
Запуск джоба и установка подключения к серверу - это изрядные накладные расходы.

Цикл - дешевле.
Достаточно запустить его из джоба.
Вырубится - джоб снова стартанет.
20 сен 13, 06:27    [14862143]     Ответить | Цитировать Сообщить модератору
 Re: Как выполнять процедуру каждые 5 сек.?  [new]
andy st
Member

Откуда:
Сообщений: 838
RAMZEZ II,
Стоит различать "выполнять каждые 5 секунд" или "между выполнениями запроса 5 секунд"
Цикл - это второй путь.
Способ by Ruuu гарантирует что между запусками через 1 пройдёт 10 секунд, а как внутри джоба разгребаться с паузами - проблемы скрипта
20 сен 13, 09:22    [14862344]     Ответить | Цитировать Сообщить модератору
 Re: Как выполнять процедуру каждые 5 сек.?  [new]
andy st
Member

Откуда:
Сообщений: 838
Хотя никто не мешает замутить 2 джоба с шагом по 10 секунд и разницей в стартовом времени в 5 секунд
20 сен 13, 09:24    [14862353]     Ответить | Цитировать Сообщить модератору
 Re: Как выполнять процедуру каждые 5 сек.?  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 2414
RAMZEZ II,

еще вариант - два джоба, кажый со своим шедулером
20 сен 13, 09:25    [14862355]     Ответить | Цитировать Сообщить модератору
 Re: Как выполнять процедуру каждые 5 сек.?  [new]
RAMZEZ II
Member

Откуда: Приморье
Сообщений: 535
я остановился на варианте в джобе запустить цикл....посмотрю как будет работать
21 сен 13, 09:27    [14866714]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить