Size: a a a

SqlCom.ru - Стиль жизни SQL

2021 January 13

ВБ

Владимир Боярских... in SqlCom.ru - Стиль жизни SQL
Alexander Shishkin
Небольшой вопрос, может кто сталкивался. Есть задание SQL агента, выполняется раз в минуту. Внутри него шаг, который выполняется 1 минуту и 5 сек. Соответственно, SQL агент будет пропускать каждое второе задание, потому что оно еще не было завершено на момент старта новой итерации. Вопрос: это как то можно обойти? Хотелось бы, чтобы он или кильнул предыдущее выполнение, или запустился сразу после окончания предыдущей итерации.
А в чём смысл такого поведения? Ну будет выполняться каждые 2 минуты, почему бы и нет. Может мне кто-то рассказать сценарий, когда это действительно может пригодиться / обязательно нужно делать?
источник

ВБ

Владимир Боярских... in SqlCom.ru - Стиль жизни SQL
Konstantin Taranov
а в чем изначально логика запускать каждую минуту джоб если он работает больше минуты?
опередил)
источник

KT

Konstantin Taranov in SqlCom.ru - Стиль жизни SQL
я просто прифигел от количества советов на довольно странный запрос и написал первое что пришло в голову)
источник

AS

Alexander Shishkin in SqlCom.ru - Стиль жизни SQL
Просто упростил, чтобы суть вопроса лучше передать) Стоит задача сделать непрерывное выполнение процедуры средствами SQL Agent. Пока придумали задание, которое выполняется раз в час, и в нем цикл, который смотрит на текущее время и выполняется только если оно не "перевалило" за текущий час. Вроде кажется, что непрерывность достигнута, но случается такое, что последняя выполняемая процедура выполнялась чуть дольше обычного и "перевалила" за час, и следующий джоб пропускается.
источник

АА

Андрей Агеев... in SqlCom.ru - Стиль жизни SQL
Konstantin Taranov
я просто прифигел от количества советов на довольно странный запрос и написал первое что пришло в голову)
в конкретном случае для коллеги может и не обязательно, но в целом ассинхронность тема нужная для простого управления большими объемами сложных задач. если не ошибаюсь тут целый фреймворк на t-sql с блэкджеком и прочим для многопоточного выполнения джобами задач пробегал. мы делаем такие вещи брокером.
источник

KT

Konstantin Taranov in SqlCom.ru - Стиль жизни SQL
Андрей Агеев
в конкретном случае для коллеги может и не обязательно, но в целом ассинхронность тема нужная для простого управления большими объемами сложных задач. если не ошибаюсь тут целый фреймворк на t-sql с блэкджеком и прочим для многопоточного выполнения джобами задач пробегал. мы делаем такие вещи брокером.
слово простое лишнее, а так согласен, но у товарища по моему что-то другое на уме, последнее сообщение не понял от слова совсем
источник

AS

Alexander Shishkin in SqlCom.ru - Стиль жизни SQL
"Стоит задача сделать непрерывное выполнение процедуры средствами SQL Agent"  сократил)
источник

KT

Konstantin Taranov in SqlCom.ru - Стиль жизни SQL
Alexander Shishkin
"Стоит задача сделать непрерывное выполнение процедуры средствами SQL Agent"  сократил)
самое неудачное сокращение на моей памяти, это место ключевое в недопонимании, что значит непрерывное?
источник

I

ILYA in SqlCom.ru - Стиль жизни SQL
Alexander Shishkin
Просто упростил, чтобы суть вопроса лучше передать) Стоит задача сделать непрерывное выполнение процедуры средствами SQL Agent. Пока придумали задание, которое выполняется раз в час, и в нем цикл, который смотрит на текущее время и выполняется только если оно не "перевалило" за текущий час. Вроде кажется, что непрерывность достигнута, но случается такое, что последняя выполняемая процедура выполнялась чуть дольше обычного и "перевалила" за час, и следующий джоб пропускается.
Ну сделайте степ с бесконечным циклом типа while 1=1 в котором будет ваша процедура, а джобу достаточно будет тогда запустить один раз и просто проверяйте работает она или нет
источник

АА

Андрей Агеев... in SqlCom.ru - Стиль жизни SQL
ILYA
Ну сделайте степ с бесконечным циклом типа while 1=1 в котором будет ваша процедура, а джобу достаточно будет тогда запустить один раз и просто проверяйте работает она или нет
Ну да, а если не работает - запускать.
источник

DS

Denis Suhotin in SqlCom.ru - Стиль жизни SQL
ILYA
Ну сделайте степ с бесконечным циклом типа while 1=1 в котором будет ваша процедура, а джобу достаточно будет тогда запустить один раз и просто проверяйте работает она или нет
А так делают вообще часто? Т.е. MS SQL в состоянии бесконечные циклы крутить долго и чтобы ничего нигде не 'текло'?
источник

IC

Igor Chizhov in SqlCom.ru - Стиль жизни SQL
Присоединяюсь к вопросу, поделитесь плиз, если у кого есть опыт.
источник

O

Oleg T in SqlCom.ru - Стиль жизни SQL
делали, ничего особенно не заметили. я вообще в жизни видел только два раза реальную течь в SQL Server. Он достаточно стабилен.
источник

G

Gopneg in SqlCom.ru - Стиль жизни SQL
Denis Suhotin
А так делают вообще часто? Т.е. MS SQL в состоянии бесконечные циклы крутить долго и чтобы ничего нигде не 'текло'?
а ты когда с работы уходишь, рубильником обычно щелкаешь?
источник

DS

Denis Suhotin in SqlCom.ru - Стиль жизни SQL
Gopneg
а ты когда с работы уходишь, рубильником обычно щелкаешь?
Обычно нет, но в целом стараюсь не дизайнить бесконечный цикл в контексте одной сессии.
источник

O

Oleg T in SqlCom.ru - Стиль жизни SQL
Denis Suhotin
А так делают вообще часто? Т.е. MS SQL в состоянии бесконечные циклы крутить долго и чтобы ничего нигде не 'текло'?
только советую внутри цикла делать какой-то WAITFOR DELAY, а то он цикл будет вертеть с максимальной скоростью, прожигая ресурсы.
источник

G

Gopneg in SqlCom.ru - Стиль жизни SQL
Denis Suhotin
Обычно нет, но в целом стараюсь не дизайнить бесконечный цикл в контексте одной сессии.
что мешает?
источник

IC

Igor Chizhov in SqlCom.ru - Стиль жизни SQL
Просто брокер иногда подкидывает свинью, особенно при переключении нод AlwaysOn. Думаем отказаться от него.
источник

O

Oleg T in SqlCom.ru - Стиль жизни SQL
Denis Suhotin
Обычно нет, но в целом стараюсь не дизайнить бесконечный цикл в контексте одной сессии.
фоновые процессы обычно примерно так  и работают же. Агент так работает тоже.
источник

АА

Андрей Агеев... in SqlCom.ru - Стиль жизни SQL
Denis Suhotin
А так делают вообще часто? Т.е. MS SQL в состоянии бесконечные циклы крутить долго и чтобы ничего нигде не 'текло'?
делают не часто. но делал такое на express редакциях без агента. работает стабильно, аптайм месяцами без проблем держался без всяких утечек и потерь стабильности. в циклах waitfor ну и опять же в этих циклах только диспетчеризация задач брокера, больше ничего.
источник