SQL Server: следует ли использовать "Задание агента" или "План обслуживания" для удаления старых данных?

Я ищу способ периодически (например, еженедельно) запускать некоторые инструкции SQL в базе данных для удаления старых данных. Насколько я вижу, есть (по крайней мере) два способа сделать это:

  • с помощью "Плана обслуживания" и "Выполнить задачу T-SQL Statement"
  • используя "Задание агента SQL Server" и укажите инструкции в "Шаге" этого задания.

Мой вопрос: в чем разница между этими двумя возможностями и какой из них я должен использовать для своей задачи?

Ответ 1

Это не совсем/или выбор; там некоторое перекрытие.

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

Агент SQL Server - это служба, которая периодически запускает задания; работа - это все, что планируется запустить. План обслуживания - это работа.

Когда вы планируете запустить план обслуживания, вы фактически создаете задание (или задание, спасибо DJ), чтобы Агент SQL Server выполнялся периодически.

Теперь, чтобы выбрать, какой путь лучше всего (пройти через Мастер плана обслуживания или непосредственно через Агент), я бы сказал, что для большинства баз данных мастер плана обслуживания является достаточно эффективным. Вы можете добавить дополнительные шаги к заданию, созданному Планом обслуживания, но это зависит от вашей среды.

Это имеет смысл?