Выполнять длительные задания в SQL Server - PullRequest
0 голосов
/ 30 марта 2011

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

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

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

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

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

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

Ответы [ 2 ]

3 голосов
/ 30 марта 2011

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

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

0 голосов
/ 13 января 2014

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

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

А ЗДЕСЬ
Выполнение работ
http://technet.microsoft.com/en-us/library/aa213815(v=sql.80).aspx

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

...