SQL Server предлагает высоко гибкую систему планирования, которая позволяет эффективно управлять и автоматизировать задачи в вашей базе данных. В этой статье мы рассмотрим различные концепции и идеи, связанные с планированием заданий в SQL Server.
Прикрепление нескольких расписаний к заданию
Одна из распространенных ситуаций – когда задание должно выполняться в разное время в течение дня. Вместо создания нескольких отдельных заданий, SQL Server позволяет прикрепить несколько расписаний к одному заданию. Это можно сделать, перейдя на вкладку расписания задания SQL Agent и нажав кнопку “Новое расписание…”. Расписания сохраняются в таблице msdb..sysjobschedules и могут быть легко управляемы с помощью хранимой процедуры sp_help_jobschedule.
Расписания для частого выполнения
Задания SQL Server могут иметь высокую частоту выполнения с интервалами менее 1 минуты. Хотя графический интерфейс SQL Agent поддерживает только “Часы” и “Минуты” для планирования, вы можете достичь интервалов менее 1 минуты, вызывая хранимые процедуры sp_add_jobschedule или sp_update_jobschedule. У этих процедур есть параметр с именем @freq_subday_type, который принимает значения, такие как 0x2 для секунд. Однако важно отметить, что задания с очень частым выполнением могут потреблять значительные ресурсы и влиять на общую производительность сервера.
Запуск задания при простое ЦП
SQL Server также предоставляет возможность запускать задание на основе использования ЦП. Включив условие простоя ЦП в свойствах SQL Agent, вы можете указать порог простоя ЦП и продолжительность, в течение которой он должен оставаться простаивающим. Этот тип планирования подходит для заданий с низкой нагрузкой на ввод-вывод и высокой загрузкой ЦП, и задание должно иметь короткую продолжительность выполнения. Важно помнить, что простой ЦП не обязательно означает, что сервер находится в простое, так как другие подсистемы, такие как ввод-вывод, могут быть заняты.
Запуск задания при запуске сервера SQL Agent
В некоторых случаях вы можете захотеть, чтобы задание запускалось после запуска сервера SQL Agent. Это может быть полезно для задач, таких как настройка или очистка рабочей среды для других заданий. Чтобы запланировать задание на запуск при запуске сервера SQL Agent, вы можете выбрать соответствующий вариант в свойствах задания SQL Agent или использовать хранимую процедуру sp_add_jobschedule с параметром @freq_type, установленным на 64.
Заключение
Система планирования SQL Server предлагает большую гибкость и позволяет определить специальные нерегулярные расписания для ваших заданий. Комбинируя различные типы расписаний, такие как повторяющиеся, одноразовые, простой ЦП или запуск сервера, вы можете эффективно автоматизировать задачи в вашей базе данных. Важно учитывать использование ресурсов и общую производительность сервера при планировании заданий с высокой частотой выполнения или использованием ЦП.