Скрипт SQL 2000 для прерывания работы агента при ее превышении

#sql #sql-server-2000 #sql-server-agent

#sql #sql-server-2000 #sql-server-agent

Вопрос:

В устаревшем блоке SQL 2000, ожидающем обновления

Есть ли у кого-нибудь скрипт для завершения / прерывания задания в SQL Agent 2000, если оно превышает установленную продолжительность или перекрывается с другим заданием агента.

Это вызывает у нас серьезную проблему: каждые несколько недель задание перезапускается, затем блокируется задание переиндексации, и это замораживает наш сервер 24/7

Ответ №1:

Одним из решений было бы добавить шаг в начале задания, с которым перекрывается длительное задание, который проверяет, выполняется ли продолжительное задание, и, если оно выполняется, выдает sp_stop_job команду.

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

sp_help_job Здесь обсуждаются различные методы принудительного вывода во временную таблицу в SQL 2000 — в качестве альтернативы вы можете запросить msdb.sysjobhistory информацию о статусе выполнения.