Каталог решений - Выполение регламентных процедур SQL по расписанию.

Выполение регламентных процедур SQL по расписанию.

Выполение регламентных процедур SQL по расписанию.

В наличии

Выполнение регламентных процедур на SQL, залог хорошей работы базы и спокойного сна.
Частенько программисту приходится следить за sql сервером, дабы хорошо работала "его база". Желательно выполнять данные процедуры глубокой ночью, когда даже самые работящие юзвери спят.

Категория:

Описание

Настроить выполнение регламентных процедур на SQL можно буквально за 10-15 минут. Никаких скриптов писать не нужно, достаточно тех  команд, которые нам рекомендует делать 1С. Это очистка процедурного кэша (DBCC FREEPROCCACHE ), реиндексация (sp_msforeachtable N‘DBCC DBREINDEX (»?»)’) и обновление статистики (exec sp_msforeachtable N‘UPDATE STATISTICS ? WITH FULLSCAN’).

Все эти команды будет выполнять SQL Server Agent, так, что позаботьтесь, о том, что бы он запускался автоматически (у меня по умолчанию он не запускался).

Открываем SQL Server Management Studio, конектимся к серверу.

Разворачиваем дерево в  Object Explorer как на рисунке

рис.1

Выбираем вкладку Jobs и выбираем пункт «новое задание»

Открывается окошко нового задания.

рис.2

На вкладке General->Name задаем имя нашего задания.

Далее переходим на вкладку «Шаги»

рис.3

Шаги, это последовательность действий, которая будет выполнятся в нужном вам порядке, с нужными вам повторениями, в нужное вам время, вообщем все для нас любимых Wink.

Создаем «новый шаг»

рис.4

Во вкладке General в поле Step Name задаем ему имя. В поле Type оставляем T-SQL. Выбираем базу (хотя, очистка кэша не привязано к конкретной базе, я все же выбрал, на будущее). В поле «command» пишем свою команду.

Переходим на вкладку Advanced

рис.5

Тут уже определяются количество попыток повторения задания (Retry attemps) через интервал времени (Retry interval). Так же, тут можно определить действия, которые будут выполняться в случае успеха (On success action) и неуспеха (On failure action) выполнения данного шага. У меня выставлен переход к следующему шагу, в обоих случаях. У меня стоит последовательно три шага (три регл задания), которые рекомендует 1С. Это очистка процедурного кэша (DBCC FREEPROCCACHE ), реиндексация (sp_msforeachtable N‘DBCC DBREINDEX (»?»)’) и обновление статистики (exec sp_msforeachtable N‘UPDATE STATISTICS ? WITH FULLSCAN’).

 

После определения шагов и вариантов их выполнения, перейдем на интересную вкладку Schedules (расписание). Где вы можете придумать любое расписание, которое вам угодно.

рис.6

Итак, создаем расписание «New».

рис.7

открывается окошко нового расписания.

Задаем ему Имя.

В «Schedule type» выберем тип расписания «Recurring» повторяющееся. (есть еще и другие типы, на вкус и цвет).

Далее выбираем частоту повторения «Daily» дни и выбираем, через сколько дней запускать эти шаги (1 день). Далее ставим время запуска заданий (время, когда нагрузка на базу минимальна).

Жмем ОК.

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

Проверить работу заданий можно, просмотрев  историю.

рис.8

Это базовое. Описание настройки регламентных заданий, которые описывает совсем небольшую часть (буквально песчинки) возможностей автоматизирования базы данных. Эти задания можно настраивать так, что бы SQL после их успешного или не успешного выполнения посылал вам письмо на почту или звонил на пейджер Wink и докладывал обстановку.

 

P.S Прошу комментировать и критиковать статью и варианты настройки выполнения заданий. В споре рождается истина Wink

Приветствую советы и дополнения по улучшению работы заданий.

 

 

 

 

 

has been added to your cart:
Оформление заказа