Выполнение длительных заданий в SQL Server

Я работаю с SQL Server 2008. Используя агент, я создал задание и запланировал его выполнение каждую минуту. Задание выполняет хранимую процедуру, которая перемещает данные из таблицы XXX во временную таблицу, а затем в таблицу YYY.

Выполнение задания может занять более одной минуты - так как объем данных достаточно велик.

  1. Будет ли запущен второй экземпляр задания, даже если первый экземпляр все еще работает?

  2. Если да, следует ли помечать записи во временной таблице (статус = 1), чтобы указать, что эти записи обрабатываются предыдущим экземпляром задания?

  3. Есть ли способ проверить, что в данный момент выполняется экземпляр задания, чтобы я не инициировал второй экземпляр задания?

  4. Есть ли другое решение для этого, о котором я не знаю? (пропускная способность важна)


person alexZ    schedule 30.03.2011    source источник
comment
Да, у вас может быть только один экземпляр, MS предлагает работать с MSX/TSX для обеспечения этой функциональности - connect.microsoft.com/SQLServer/feedback/details/633140/ Вы можете подумать о наличии копий этого задания, где каждое задание имея его идентификатор, а затем поместите этот идентификатор в столбец состояния, чтобы пометить данные для продолжения   -  person Silx    schedule 30.03.2011


Ответы (2)


Одновременно может выполняться только один экземпляр конкретного задания.

Таким образом, нет необходимости принимать какие-либо особые меры предосторожности против другого выполнения того же самого задания, начинающегося до того, как первое было остановлено.

person Martin Smith    schedule 30.03.2011
comment
Причина понижения? Это абсолютно правильно. Одно и то же задание не может выполняться одновременно с самим собой. Итак, ответьте на вопрос. В этой ситуации началось новое задание на выполнение? Нет. Делает вопрос 2 спорным. - person Martin Smith; 13.01.2014
comment
+1 Я думал, что это был один экземпляр на ГРАФИК, а не на саму РАБОТУ. Но я только что проверил, и это один экземпляр для каждого задания, даже если есть перекрывающиеся расписания. Следовательно, я также согласен с тем, что нет смысла отвечать на вопросы 2–4, поскольку все они зависели от того, что № 1 был «да», а это было «нет». - person Solomon Rutzky; 08.03.2014

проверьте этот пост
Как предотвратить одновременный запуск заданий Sql Server

Как предотвратить одновременный запуск заданий сервера Sql

Также ЗДЕСЬ
Выполнение заданий
http://technet.microsoft.com/en-us/library/aa213815(v=sql.80).aspx

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

person Valentin Petkov    schedule 13.01.2014