Мастер-Тур(15):Настройка заданий — различия между версиями

Материал из Megatec
Перейти к: навигация, поиск
[досмотренная версия][досмотренная версия]
(Список стандартных заданий (Jobs))
 
(не показаны 2 промежуточные версии этого же участника)
Строка 34: Строка 34:
 
* @endjob = '08:00:00' /* Время, во сколько чистка должна остановиться. */,
 
* @endjob = '08:00:00' /* Время, во сколько чистка должна остановиться. */,
 
* @DaysAgo = '730' /* Количество дней, до которых будет проводиться удаление. Текущая дата минус указанное число дней. Проверяются 3 даты: дата действия по, дата продажи по, дата заезда по. */,
 
* @DaysAgo = '730' /* Количество дней, до которых будет проводиться удаление. Текущая дата минус указанное число дней. Проверяются 3 даты: дата действия по, дата продажи по, дата заезда по. */,
* @DateAgo = '' /* '2010-01-01' (формат для примера). Дата, до которой производится удаление. Значение приоритетней над @dayago. Проверяются 3 даты: дата действия по, дата продажи по, дата заезда по. */,
+
* @DateAgo = '' /* '2010-01-01' (формат для примера). Дата, до которой производится удаление. Значение приоритетней над @DaysAgo. Проверяются 3 даты: дата действия по, дата продажи по, дата заезда по. */,
 
* @cleancosts = 1 /* Включить, если нужно чистить цены */,
 
* @cleancosts = 1 /* Включить, если нужно чистить цены */,
 
* @cleanhistory = 1 /* Включить, если нужно чистить историю */,
 
* @cleanhistory = 1 /* Включить, если нужно чистить историю */,
Строка 61: Строка 61:
 
* @endjob = '08:00:00' /* Время, во сколько чистка должна остановиться. */,
 
* @endjob = '08:00:00' /* Время, во сколько чистка должна остановиться. */,
 
* @DaysAgo = '30' /* Количество дней. Текущая дата минус указанное число. Проверяются 3 даты: дата действия по, дата продажи по, дата заезда по. */,
 
* @DaysAgo = '30' /* Количество дней. Текущая дата минус указанное число. Проверяются 3 даты: дата действия по, дата продажи по, дата заезда по. */,
* @DateAgo = '' /* '2010-01-01' (формат для примера). Дата, до которой производится удаление. Значение приоритетней над @dayago.Проверяются 3 даты: дата действия по, дата продажи по, дата заезда по. */,
+
* @DateAgo = '' /* '2010-01-01' (формат для примера). Дата, до которой производится удаление. Значение приоритетней над @DaysAgo. Проверяются 3 даты: дата действия по, дата продажи по, дата заезда по. */,
 
* @cleancosts = 1 /* Включить, если нужно чистить цены */,
 
* @cleancosts = 1 /* Включить, если нужно чистить цены */,
 
* @deactivate = 1 /* Включить, если надо деактивировать ценовые блоки от даты удаления до текущего момента */,
 
* @deactivate = 1 /* Включить, если надо деактивировать ценовые блоки от даты удаления до текущего момента */,
Строка 91: Строка 91:
 
* @CountLines = 30000 /* Величина блока для удаления */
 
* @CountLines = 30000 /* Величина блока для удаления */
 
Также после выполнения задания по очистке истории рекомендуется отдельно последовательно выполнить скрипты ''Defrag_history.sql'' и ''Defrag_HistoryDetail.sql'' для дефрагментации таблиц истории (строго во внерабочее время). Эти скрипты можно запросить у своего куратора.
 
Также после выполнения задания по очистке истории рекомендуется отдельно последовательно выполнить скрипты ''Defrag_history.sql'' и ''Defrag_HistoryDetail.sql'' для дефрагментации таблиц истории (строго во внерабочее время). Эти скрипты можно запросить у своего куратора.
 +
|-
 +
| Название БД_CleanQuotas<br />
 +
'''Обрабатывается с релиза 15.9'''
 +
| SET DATEFORMAT YMD
 +
Maintenance_CleanQuotas_job<br />
 +
Ниже задаются настройки (описаны в описании)
 +
| 1 сутки<br />(ночью)<br />
 +
| Удаляет данные из таблиц, связанных с квотами, историю квот, ServiceByDate и т.д.
 +
Параметры задания задаются в настройке шага задания.<br />
 +
* @beginjob = '23:00:00' /* Время, с которого можно делать чистку. */ ,
 +
* @endjob = '08:00:00' /* Время, во сколько чистка должна остановиться. */,
 +
* @DaysAgo = '730' /* Количество дней, до которых будет проводиться удаление. Текущая дата минус указанное число дней. */,
 +
* @DateAgo = '' /* '2010-01-01' (формат для примера). Дата, до которой производится удаление. Значение приоритетней над @DaysAgo. */,
 +
* @pr_key_list = '' /* Список ключей партнеров, по которым необходимо удалить данные. Если пусто, то удаление по всем партнерам. */,
 +
* @exclude_pr_key_list = '' /* Список ключей партнеров, исключенных из удаления данных. Если пусто, то удаление по всем партнерам. */,
 +
* @cn_key_list = ''  /* Список ключе стран через запятую. */,
 +
* @exclude_cn_key_list = '' /* Список ключей стран исключений через запятую. */,
 +
* @ct_key_list  = ''  /* Список ключей городов через запятую. */,
 +
* @exclude_ct_key_list  = '' /* Список ключей городов исключений через запятую. */,
 +
* @CountLines = 1000 /* Величина блока для удаления. */,
 +
* @cleanservbydate = 1 /* Удаление записей ServiceByDate. Параметр не изменять. */,
 +
* @cleanquotas = 1 /* Удаление записей qo, qd, qp, qt. Параметр не изменять. */,
 +
* @cleanstopsale = 1 /* Удаление записей StopSales. Параметр не изменять. */,
 +
* @delete = 1 /* Включение блока удаления. */',
 
|-
 
|-
 
| Название БД_Reindex
 
| Название БД_Reindex

Текущая версия на 10:47, 10 декабря 2024

Версия статьи от 10.12.2024. Для перехода на версию статьи, соответствующую используемой Вами версии программы, нажмите ссылку в таблице:

Введение

Статья предназначена для системных администраторов, контролирующих работоспособность ПК «Мастер-Тур 15». Статья описывает какие задания (Jobs) необходимо установить, чтобы постоянно очищать базу данных от устаревших и ненужных данных, а также проводить обслуживание таблиц, что положительно влияет на общую производительность ПК.

Создание заданий (Jobs)

Предупреждение


Перед созданием заданий необходимо убедиться, что установлен и запущен SQL Server Agent.
При использовании Express-издания Microsoft SQL Server вместо заданий sql-сервера используется планировщик заданий Windows


Для создания необходимых заданий необходимо выполнить скрипт по базе данных (CreateJob_NameJob.sql), который можно запросить у своего куратора (размещены по пути \\Scripts\utils\Jobs). Задания не должны работать одновременно.

Список стандартных заданий (Jobs)

Название задания (Job Name) Запускаемая хранимая процедура Интервал запуска Описание
Название БД_CleanCosts

Обрабатывается с релиза 15.8, stable 2023.10

SET DATEFORMAT YMD

Maintenance_CleanCost_job
Ниже задаются настройки (описаны в описании)

1 сутки
(ночью)
Удаляет данные из таблицы цен, ценовых пакетов и таблиц истории History, HistoryDetail, HistoryCosts, удаляются ценовые блоки без цен.

Удаляется история, относящаяся к ценам, которые были удалены.
Параметры задания задаются в настройке шага задания.
Ниже указано описание настроек:

  • @beginjob = '23:00:00' /* Время, с которого можно делать чистку. */ ,
  • @endjob = '08:00:00' /* Время, во сколько чистка должна остановиться. */,
  • @DaysAgo = '730' /* Количество дней, до которых будет проводиться удаление. Текущая дата минус указанное число дней. Проверяются 3 даты: дата действия по, дата продажи по, дата заезда по. */,
  • @DateAgo = /* '2010-01-01' (формат для примера). Дата, до которой производится удаление. Значение приоритетней над @DaysAgo. Проверяются 3 даты: дата действия по, дата продажи по, дата заезда по. */,
  • @cleancosts = 1 /* Включить, если нужно чистить цены */,
  • @cleanhistory = 1 /* Включить, если нужно чистить историю */,
  • @cleanhistorycosts = 1 /* Включить, если нужно чистить историю цен */,
  • @pkg_name = /* 'название пакета' Название пакета для удаления. Указано для примера. Единичный выбор. Поиск будет производиться через LIKE */,
  • @pkg_key_list = /* 3284 Можно указать ключи пакетов через запятую. Если не использовать, то оставить Null или . */,
  • @cn_key_list = /* Ключи стран для пакетов (даже если цена заведена для другой страны. Выборка цен производится по стране пакета и удаление по пакету). Лучше страну не указывать, если нет уверенности. */,
  • @exlude_pkg_key_list = /* Список ключей пакетов исключений через запятую */,
  • @exlude_cn_key_list = /* Список ключей стран исключений */,
  • @CountLines = 60000 /* Величина блока для удаления */


Внимание!
Если ключ пакета указан в списке ключей для удаления и в списке ключей для исключения, то данный пакет будет удален. Исключение не отработает. Аналогично работает с ключами стран.

Название БД_CleanCostsGDS

Обрабатывается с релиза 15.8, stable 2023.10

SET DATEFORMAT YMD

Maintenance_CleanCostsGDS_job
Ниже задаются настройки (описаны в описании)

1 сутки
(ночью)
Основным назначением задания является чистка цен и истории цен от GDS адаптеров.

Удаляются цены и пустые ценовые блоки старше указанного количества дней. Ценовые блоки от указанного
срока до текущего момента деактивируются, если в этом пакете нет цен на будущие даты.
Параметры задания задаются в настройке шага задания.
Ниже указано описание настроек:

  • @beginjob = '23:00:00' /* Время, с которого можно делать чистку. */ ,
  • @endjob = '08:00:00' /* Время, во сколько чистка должна остановиться. */,
  • @DaysAgo = '30' /* Количество дней. Текущая дата минус указанное число. Проверяются 3 даты: дата действия по, дата продажи по, дата заезда по. */,
  • @DateAgo = /* '2010-01-01' (формат для примера). Дата, до которой производится удаление. Значение приоритетней над @DaysAgo. Проверяются 3 даты: дата действия по, дата продажи по, дата заезда по. */,
  • @cleancosts = 1 /* Включить, если нужно чистить цены */,
  • @deactivate = 1 /* Включить, если надо деактивировать ценовые блоки от даты удаления до текущего момента */,
  • @cleanhistory = 1 /* Включить, если нужно чистить историю */,
  • @cleanhistorycosts = 1 /* Включить, если нужно чистить историю цен */,
  • @pkg_name = 'Nemo_ALL(внешняя система)' /* 'название пакета' Название пакета для удаления. Указано для примера. Единичный выбор. Поиск будет производиться через LIKE */,
  • @pkg_key_list = /* '3284,456' Обазательный параметр.Можно указать ключи пакетов через запятую. Если не использовать, то оставить Null или . */,
  • @partner_name = 'Nemo_ALL(внешняя система)' /* Название партнера указано для примера. Поиск будет производится через LIKE */,
  • @partner_key_list = /* '3284,456' Обазательный параметр. Можно указать ключи партнеров через запятую. Если не использовать, то оставить Null или */,
  • @exlude_pkg_key_list = /* Список ключей пакетов исключений. Указывается через запятую. */,
  • @exlude_partner_key_list = /* Список ключей партнеров исключений. Указывается через запятую. */,
  • @svkey = 1 /* Ключ услуги для обработки (1 – авиаперелет, 3 – отель)*/,
  • @CountLines = 50000 /* Величина блока для удаления */


Внимание!
Если ключ пакета указан в списке ключей для удаления и в списке ключей для исключения, то данный пакет будет удален. Исключение не отработает. Аналогично работает с ключами партнеров.

Название БД_CleanHistory

Обрабатывается с релиза 15.8, stable 2023.10

SET DATEFORMAT YMD

Maintenance_CleanHistory_job
Ниже задаются настройки (описаны в описании)

1 сутки
(ночью)
Удаляет данные из таблицы истории History, HistoryDetail, HistoryCosts.

Не удаляются строки, если заполнено поле hi_dgcod (т.е. информация относится к путевке).
Параметры задания задаются в настройке шага задания.

  • @beginjob = '23:00:00' /* Время, с которого можно делать чистку. */ ,
  • @endjob = '08:00:00' /* Время, во сколько чистка должна остановиться. */,
  • @DaysAgo = '730' /* Количество дней, до которых будет проводиться удаление. Текущая дата минус указанное число дней. */,
  • @CountLines = 30000 /* Величина блока для удаления */

Также после выполнения задания по очистке истории рекомендуется отдельно последовательно выполнить скрипты Defrag_history.sql и Defrag_HistoryDetail.sql для дефрагментации таблиц истории (строго во внерабочее время). Эти скрипты можно запросить у своего куратора.

Название БД_CleanQuotas

Обрабатывается с релиза 15.9

SET DATEFORMAT YMD

Maintenance_CleanQuotas_job
Ниже задаются настройки (описаны в описании)

1 сутки
(ночью)
Удаляет данные из таблиц, связанных с квотами, историю квот, ServiceByDate и т.д.

Параметры задания задаются в настройке шага задания.

  • @beginjob = '23:00:00' /* Время, с которого можно делать чистку. */ ,
  • @endjob = '08:00:00' /* Время, во сколько чистка должна остановиться. */,
  • @DaysAgo = '730' /* Количество дней, до которых будет проводиться удаление. Текущая дата минус указанное число дней. */,
  • @DateAgo = /* '2010-01-01' (формат для примера). Дата, до которой производится удаление. Значение приоритетней над @DaysAgo. */,
  • @pr_key_list = /* Список ключей партнеров, по которым необходимо удалить данные. Если пусто, то удаление по всем партнерам. */,
  • @exclude_pr_key_list = /* Список ключей партнеров, исключенных из удаления данных. Если пусто, то удаление по всем партнерам. */,
  • @cn_key_list = /* Список ключе стран через запятую. */,
  • @exclude_cn_key_list = /* Список ключей стран исключений через запятую. */,
  • @ct_key_list = /* Список ключей городов через запятую. */,
  • @exclude_ct_key_list = /* Список ключей городов исключений через запятую. */,
  • @CountLines = 1000 /* Величина блока для удаления. */,
  • @cleanservbydate = 1 /* Удаление записей ServiceByDate. Параметр не изменять. */,
  • @cleanquotas = 1 /* Удаление записей qo, qd, qp, qt. Параметр не изменять. */,
  • @cleanstopsale = 1 /* Удаление записей StopSales. Параметр не изменять. */,
  • @delete = 1 /* Включение блока удаления. */',
Название БД_Reindex Maintenance_reindex_job 1 сутки
(ночью)
Производится обслуживание таблиц и статистики на таблицах в базе данных.

Задание рекомендовано как замена штатных средств sql сервера, т.к. действия основываются на
количестве изменений и приоритетах таблиц. Уменьшена нагрузка и время выполнения относительно штатных средств.
В запуске задания для reindex доступна опция @DisableRebuild = 1. Разрешает использовать в качестве перестроения индексов только функцию REORGANIZE. Позволяет не блокировать работу с базой данных во время операции, но существенно увеличивает время работы скрипта и нагрузку на базу данных со всеми негативными последствиями. Необходимо использовать, если Rebuild индекса не позволяет использовать базу данных в полной мере из-за объема данных.

Название БД_StatsUpdate

Обрабатывается с релиза 15.8, stable 2023.10

Maintenance_stats_run 1 сутки
(ночью)
Задание обновления статистики в таблицах базы данных на основе изменения данных и веса таблицы в работе.

Задание рекомендуется использовать только по согласованию с куратором, если массовые изменения данных после
завершения приводят к замедлению работы с ценами в программе.
Задание можно держать выключенным и запускать только при необходимости руками.
Задание рекомендовано как замена штатных средств sql сервера, т.к. действия основываются на
количестве изменений и приоритетах таблиц. Уменьшена нагрузка и время выполнения относительно штатных средств.


Список нестандартных заданий (Jobs) - скоро будут удалены, так как будет их замена

Название задания (Job Name) Запускаемая хранимая процедура Интервал запуска Описание
Задание создать самостоятельно.

Название БД_CostOffer_deactivate

Содержимое файла CostOffer_deactivate.sql 1 сутки
(ночью)
При работе с актуализацией цен Авиа GDS в базе данных создается значительное количество цен. Данный скрипт производит поиск неактуальных ценовых блоков, в которых есть цены, созданные механизмом обновления цен с прошедшими датами и деактивирует их.

В скрипте необходимо задать название пакета и партнера

Пример:
PR_NAME = 'Nemo(внешняя система)'
TL_NAME = 'Nemo(внешняя система)'

Скрипт можно запросить у своего куратора. Содержимое скрипта целиком разместить в задании.

Название БД_CleanHistory

Обрабатывается с релиза 15.8

SET DATEFORMAT YMD

Maintenance_CleanHistory_job

1 сутки
(ночью)
Производит очистку таблиц History и HistoryDetails за Х дней, кроме данных по путевкам.

В хранимой процедуре Maintenance_CleanHistory_job в параметрах @BeginJob и @EndJob можно задать время, в которое можно проводить обслуживание. По умолчанию установлено время с 23:00 до 08:00.
В хранимой процедуре Maintenance_CleanHistory_Run в параметре @DaysAgo можно установить дату, до которой будет проводиться очистка. По умолчанию задано 365 (то есть, при запуске 01.02.2022 года будут удаляться все записи от создания базы данных до 31.01.2021 года).

Также после выполнения задания по очистке истории рекомендуется отдельно последовательно выполнить скрипты Defrag_history.sql и Defrag_HistoryDetail.sql для дефрагментации таблиц истории (строго во внерабочее время). Эти скрипты можно запросить у своего куратора.


Регламентные работы, рекомендованные Microsoft

В процессе эксплуатации системы рекомендуется проводить регламентные работы с помощью мастера планов обслуживания в SQL Server.
Мастер планов обслуживания создает план обслуживания, который агент Microsoft SQL Server может выполняться регулярно. Это позволяет выполнять различные задачи администрирования базы данных, включая резервное копирование, проверки целостности базы данных или обновление статистики базы данных через указанные интервалы времени.

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

Внутренние скрипты

Разработан скрипт для удаления акций по параметрам.
Расположен по пути \\Scripts\utils\Cleaning\Clean_Specials.sql
Запросить его можно у своего куратора.