gifts2017

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

Опубликовал max sfer (jmaks) в раздел Программирование - Практика программирования

Выполнение регламентных процедур на 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

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

 

 

 

 

 

См. также

PowerTools от 1 000
Подписаться Добавить вознаграждение

Комментарии

1. mirco brons (mirco) 13.11.09 13:21
(0) По оформлению. Лучше скрины внутри статьи сделай маленькими, а полноразмерные приложи как картинки(они тогда будут в конце).
kirillkr; support; +2 Ответить
2. Александр Медведев (anig99) 13.11.09 13:57
мало... всё это постигается методом тыка... Там ещё блок схемы рисовать можно. А сами регламентные задания ещё Гилёв выкладывал.
3. gilv (Gilev.Vyacheslav) 15.11.09 06:01
а я вот поставлю жирный плюс
чем больше будет написано, как надо делать обслуживание 1С, чтобы предупредить возможные проблемы, тем больше шансов, что админы начнут это делать

афтор, пишы исчо ;)
baracuda; crabzzy; wunderland; kirillkr; artbear; anig99; +6 Ответить 1
4. Pavel Grigoryev (Zen2004) 15.11.09 09:52
5. Дмитрий Елисеев (w-divin) 16.11.09 22:46
Хорошо описано ))) заслуженный plus-ик
6. mishau У (mishau) 17.11.09 17:53
Плюс, а где почитать рекомендации 1с на этот счет?
достаточно тех команд, которые нам рекомендует делать 1С
7. matoid15 matoid15 (matoid15) 18.11.09 15:37
Maintenance Plan Wizard гораздо проще решает описанные шаги! Зачем усложнять)?
8. matoid15 matoid15 (matoid15) 18.11.09 16:32
И первый шаг такой вроде должен быть DBCC FREEPROCCACHE WITH NO_INFOMSGS.
9. Сергей Кобяков (Serjik78) 18.11.09 18:22
Зачет, хоть и знаем, но для новичков очень полезно :) Плюс!
10. Валера (m0r0z) 23.11.09 07:41
Очень информативная статья.
А как такое же можно сделать на PostgreSQL 8.3.3-2.1.
11. rasswet (rasswet) 11.12.09 11:18
на будущее: цепляй плиз всё это одним ворд-файлом, я бы качнул и почитал..
12. Vasily Kushnir (vasilykushnir) 11.12.09 16:41
И еще добавь BACKUP DATABASE - тоже полезно каждую ночь на всяк пожарный делать.
13. Анна Т (anna_irk) 21.09.11 10:43
развернутый рассказ) все очень понятно
14. Артано Майаров (Артано) 11.03.13 05:01
Сегодня у меня с сисадмином дискуссия произошла. Предмет её таков: какова очередность проведения регламентных процедур. Т.е. сначала реиндексируются таблицы, а потом обновляются статистики, или наоборот. Я руководствовался классовым чутьем: статистики строятся по индексам (т.е. статистика распределения индексов), поэтому её нужно делать после реиндексации. Сисадмин же ссылался на описание с сайта 1С где про очередность никаких разъяснений, но описание идет в таком порядке: статистики, реиндексация.
15. Рустам (Borometr) 13.03.13 05:59
вот ведь черт побери, у меня рисунки 1,2,6 не отображаются (( А для PostgreSQL можно что-нибудь подобное описать?
16. Игорь (doronin70) 29.03.13 17:30
А действительно, почему рисунки 1,2 и 6 удалены ?
17. Ловыгин Антон (wunderland) 10.04.13 11:58
(3) gilv, Повторение - мать учения...
И все равно, пока каждый на эти грабли не наступит...
18. Александр Ваняшкин (udav189) 28.08.14 17:45
не одна из картинок не грузится
19. Евгения + (zhenya17) 11.10.16 07:35
Верните картинки, пожалуйста! :)
20. Евгения + (zhenya17) 12.10.16 12:49
Поставила за публикацию плюсик, т.к. и без картинок легко разобралась. Спасибо за наводку! ;)
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа