Мастер-Тур(15):Настройка заданий — различия между версиями
| [досмотренная версия] | [досмотренная версия] |
Aefremov (обсуждение | вклад) (→Список стандартных заданий (Jobs)) |
Biryukov (обсуждение | вклад) (→Список стандартных заданий (Jobs)) |
||
| (не показано 9 промежуточных версий этого же участника) | |||
| Строка 33: | Строка 33: | ||
* @beginjob = '23:00:00' /* Время, с которого можно делать чистку. */ , | * @beginjob = '23:00:00' /* Время, с которого можно делать чистку. */ , | ||
* @endjob = '08:00:00' /* Время, во сколько чистка должна остановиться. */, | * @endjob = '08:00:00' /* Время, во сколько чистка должна остановиться. */, | ||
| − | * @DaysAgo = '730' /* Количество дней, до которых будет проводиться удаление. Текущая дата минус указанное число дней. Проверяются 3 даты: дата действия по,дата продажи по, дата заезда по. | + | * @DaysAgo = '730' /* Количество дней, до которых будет проводиться удаление. Текущая дата минус указанное число дней, и удаляться будет все, что раньше этой даты. Пример: указано в настройке 365, сегодня 01.01.2025 год. Данные будут удалены с начала летоисчисления до 01.01.2024 года. Проверяются 3 даты: дата действия по, дата продажи по, дата заезда по. */, |
| − | * @DateAgo = '' /* '2010-01-01' (формат для примера). Дата, до которой производится удаление. Значение приоритетней над @ | + | * @DateAgo = '' /* '2010-01-01' (формат для примера). Дата, до которой производится удаление. Значение приоритетней над @DaysAgo. Проверяются 3 даты: дата действия по, дата продажи по, дата заезда по. */, |
* @cleancosts = 1 /* Включить, если нужно чистить цены */, | * @cleancosts = 1 /* Включить, если нужно чистить цены */, | ||
* @cleanhistory = 1 /* Включить, если нужно чистить историю */, | * @cleanhistory = 1 /* Включить, если нужно чистить историю */, | ||
| Строка 60: | Строка 60: | ||
* @beginjob = '23:00:00' /* Время, с которого можно делать чистку. */ , | * @beginjob = '23:00:00' /* Время, с которого можно делать чистку. */ , | ||
* @endjob = '08:00:00' /* Время, во сколько чистка должна остановиться. */, | * @endjob = '08:00:00' /* Время, во сколько чистка должна остановиться. */, | ||
| − | * @DaysAgo = ' | + | * @DaysAgo = '730' /* Количество дней, до которых будет проводиться удаление. Текущая дата минус указанное число дней, и удаляться будет все, что раньше этой даты. Пример: указано в настройке 365, сегодня 01.01.2025 год. Данные будут удалены с начала летоисчисления до 01.01.2024 года. Проверяются 3 даты: дата действия по, дата продажи по, дата заезда по. */, |
| − | * @DateAgo = '' /* '2010-01-01' (формат для примера). Дата, до которой производится удаление. Значение приоритетней над @ | + | * @DateAgo = '' /* '2010-01-01' (формат для примера). Дата, до которой производится удаление. Значение приоритетней над @DaysAgo. Проверяются 3 даты: дата действия по, дата продажи по, дата заезда по. */, |
* @cleancosts = 1 /* Включить, если нужно чистить цены */, | * @cleancosts = 1 /* Включить, если нужно чистить цены */, | ||
* @deactivate = 1 /* Включить, если надо деактивировать ценовые блоки от даты удаления до текущего момента */, | * @deactivate = 1 /* Включить, если надо деактивировать ценовые блоки от даты удаления до текущего момента */, | ||
| Строка 67: | Строка 67: | ||
* @cleanhistorycosts = 1 /* Включить, если нужно чистить историю цен */, | * @cleanhistorycosts = 1 /* Включить, если нужно чистить историю цен */, | ||
* @pkg_name = 'Nemo_ALL(внешняя система)' /* 'название пакета' Название пакета для удаления. Указано для примера. Единичный выбор. Поиск будет производиться через LIKE */, | * @pkg_name = 'Nemo_ALL(внешняя система)' /* 'название пакета' Название пакета для удаления. Указано для примера. Единичный выбор. Поиск будет производиться через LIKE */, | ||
| − | * @pkg_key_list = '' /* '3284,456' ''' | + | * @pkg_key_list = '' /* '3284,456' '''Обязательный параметр'''.Можно указать ключи пакетов через запятую. Если не использовать, то оставить Null или ''. */, |
* @partner_name = 'Nemo_ALL(внешняя система)' /* Название партнера указано для примера. Поиск будет производится через LIKE */, | * @partner_name = 'Nemo_ALL(внешняя система)' /* Название партнера указано для примера. Поиск будет производится через LIKE */, | ||
| − | * @partner_key_list = '' /* '3284,456' ''' | + | * @partner_key_list = '' /* '3284,456' '''Обязательный параметр'''. Можно указать ключи партнеров через запятую. Если не использовать, то оставить Null или '' */, |
* @exlude_pkg_key_list = '' /* Список ключей пакетов исключений. Указывается через запятую. */, | * @exlude_pkg_key_list = '' /* Список ключей пакетов исключений. Указывается через запятую. */, | ||
* @exlude_partner_key_list = '' /* Список ключей партнеров исключений. Указывается через запятую. */, | * @exlude_partner_key_list = '' /* Список ключей партнеров исключений. Указывается через запятую. */, | ||
| Строка 88: | Строка 88: | ||
* @beginjob = '23:00:00' /* Время, с которого можно делать чистку. */ , | * @beginjob = '23:00:00' /* Время, с которого можно делать чистку. */ , | ||
* @endjob = '08:00:00' /* Время, во сколько чистка должна остановиться. */, | * @endjob = '08:00:00' /* Время, во сколько чистка должна остановиться. */, | ||
| − | * @DaysAgo = '730' /* Количество дней, до которых будет проводиться удаление. Текущая дата минус указанное число дней. */, | + | * @DaysAgo = '730' /* Количество дней, до которых будет проводиться удаление. Текущая дата минус указанное число дней, и удаляться будет все, что раньше этой даты. Пример: указано в настройке 365, сегодня 01.01.2025 год. Данные будут удалены с начала летоисчисления до 01.01.2024 года. */, |
* @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' /* Количество дней, до которых будет проводиться удаление. Текущая дата минус указанное число дней, и удаляться будет все, что раньше этой даты. Пример: указано в настройке 365, сегодня 01.01.2025 год. Данные будут удалены с начала летоисчисления до 01.01.2024 года. */, | ||
| + | * @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 = '' /* Список ключей городов исключений через запятую. */, | ||
| + | * @sv_key_list = '' /* Список ключей классов услуг (sv_key) через запятую. */, | ||
| + | * @exclude_sv_key_list = '' /* Список ключей классов услуг (sv_key) исключений через запятую */, | ||
| + | * @CountLines = 1000 /* Величина блока для удаления. */, | ||
| + | * @cleanservbydate = 1 /* Удаление записей ServiceByDate. Параметр не изменять. */, | ||
| + | * @cleanquotas = 1 /* Удаление записей qo, qd, qp, qt. Параметр не изменять. */, | ||
| + | * @cleanstopsale = 1 /* Удаление записей StopSales. Параметр не изменять. */, | ||
| + | * @delete = 1 /* Включение блока удаления. */', | ||
|- | |- | ||
| Название БД_Reindex | | Название БД_Reindex | ||
| Строка 110: | Строка 136: | ||
Задание рекомендовано как замена штатных средств sql сервера, т.к. действия основываются на <br /> | Задание рекомендовано как замена штатных средств sql сервера, т.к. действия основываются на <br /> | ||
количестве изменений и приоритетах таблиц. Уменьшена нагрузка и время выполнения относительно штатных средств.<br /> | количестве изменений и приоритетах таблиц. Уменьшена нагрузка и время выполнения относительно штатных средств.<br /> | ||
| + | |||
| + | |- | ||
| + | | Название БД_AutoMargin | ||
| + | '''Обрабатывается с релиза 15.9, stable 2025.6''' | ||
| + | | AutoTourMargin | ||
| + | | 1 час | ||
| + | | Автоматическое добавление наценки на основе правила<br /> | ||
| + | |- | ||
| + | |||
| + | | Название БД_CleanSpecials<br /> | ||
| + | '''Обрабатывается с релиза 15.9, stable 2025.20''' | ||
| + | | SET DATEFORMAT YMD | ||
| + | Maintenance_CleanSpecials_job<br /> | ||
| + | Ниже задаются настройки (описаны в описании) | ||
| + | | 1 сутки<br />(ночью)<br /> | ||
| + | | Удаляет данные из таблиц акций Specials/SpecialsHistory/SpecialsDates/SpecialsRelations.<br /> | ||
| + | При каждом запуске и включенной настройке @deletebad удаляются акции, у которых нарушена целостность: удалена хоть одна сущность из справочников (пакет, партнер, ценовой блок, отель, транспорт, трансфер).<br /> | ||
| + | Параметры задания задаются в настройке шага задания.<br /> | ||
| + | Необходимость удаления битых акций нужно обговаривать с разработчиками и клиентом.<br /> | ||
| + | |||
| + | Ниже указано описание настроек:<br /> | ||
| + | * @BeginJob = '23:00:00' /* Время, с которого можно делать чистку. */ , | ||
| + | * @EndJob = '08:00:00' /* Время, во сколько чистка должна остановиться. */, | ||
| + | * @DaysAgo = '730' /* Количество дней, до которых будет проводиться удаление. Текущая дата минус указанное число дней, и удаляться будет все, что раньше этой даты. Пример: указано в настройке 365, сегодня 01.01.2025 год. Данные будут удалены с начала летоисчисления до 01.01.2024 года. */, | ||
| + | * @DateAgo = '' /* '2010-01-01' (формат для примера). Дата, до которой производится удаление. Значение приоритетней над @DaysAgo. */, | ||
| + | * @sp_type_list = '' /* Список ключей типов акций через запятую, 1 – KickBack, 2 – PayStay, 4 – EarlyBird, 5 –– SpecialTransfer */, | ||
| + | * @exclude_sp_type_list = '' /* Список ключей типов акций для исключения из выборки через запятую, 1 – KickBack, 2 – PayStay, 4 – EarlyBird, 5 –– SpecialTransfer */, | ||
| + | * @pr_key_list = '' /* Список ключей партнеров, по которым необходимо удалить данные. Если пусто, то удаление по всем партнерам */, | ||
| + | * @exclude_pr_key_list = '' /* Список ключей партнеров, исключенных из удаления данных. Если пусто, то удаление по всем партнерам */, | ||
| + | * @tl_key_list = '' /* Список ключей пакетов (tbl_turlist) через запятую. */, | ||
| + | * @exclude_tl_key_list = '' /* Список ключей пакетов (tbl_turlist) для исключения из выборки. Указывается через запятую. */, | ||
| + | * @co_key_list = '' /* Список ключей ценовых блоков (costoffers) через запятую. */, | ||
| + | * @exclude_co_key_list = '' /* Список ключей ценовых блоков (costoffers) для исключения из выборки. Указывается через запятую. */, | ||
| + | * @tf_key_list = '' /* Список ключей трансферов через запятую (только для акций SpecialTransfer). */, | ||
| + | * @exclude_tf_key_list = '' /* Список ключей трансферов для исключения из выборки. Указывается через запятую. */, | ||
| + | * @tr_key_list = '' /* Список ключей транспорта через запятую (только для акций SpecialTransfer) */, | ||
| + | * @exclude_tr_key_list = '' /* Список ключей транспорта для исключения из выборки. Указывается через запятую. */, | ||
| + | * @hd_key_list = '' /* Список ключей отелей через запятую */, | ||
| + | * @exclude_hd_key_list = '' /* Список ключей отелей для исключения из выборки. Указывается через запятую. */, | ||
| + | * @sp_name_list = '' /* 'import mis' Название акции указано для примера. Удаление акции по его названию. Поиск будет производится через LIKE */, | ||
| + | * @exclude_sp_name_list = '' /* Название акции для исключения из выборки. Поиск будет производится через LIKE */, | ||
| + | * @cleanspecials = 1 /* Включить (1) / выключить (0), Удаление найденных акций старше указанной даты. Если 0, то удаления производиться не будет. */, | ||
| + | * @deletebad = 0 /* Включить (1) / выключить (0), Удаление акции целиком даже с текущими датами, если из справочников удалена хотя бы одна зависимая сущность (пакет, партнер, ценовой блок, отель, транспорт, трансфер) */, | ||
| + | * @CountLines = 1000 /* Величина блока для удаления */, | ||
|- | |- | ||
|} | |} | ||
Текущая версия на 14:53, 13 октября 2025
Версия статьи от 13.10.2025. Для перехода на версию статьи, соответствующую используемой Вами версии программы, нажмите ссылку в таблице:
Содержание
Введение
Статья предназначена для системных администраторов, контролирующих работоспособность ПК «Мастер-Тур 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, удаляются ценовые блоки без цен. Удаляется история, относящаяся к ценам, которые были удалены.
|
| Название БД_CleanCostsGDS Обрабатывается с релиза 15.8, stable 2023.10 |
SET DATEFORMAT YMD
Maintenance_CleanCostsGDS_job |
1 сутки (ночью) |
Основным назначением задания является чистка цен и истории цен от GDS адаптеров. Удаляются цены и пустые ценовые блоки старше указанного количества дней. Ценовые блоки от указанного
|
| Название БД_CleanHistory Обрабатывается с релиза 15.8, stable 2023.10 |
SET DATEFORMAT YMD
Maintenance_CleanHistory_job |
1 сутки (ночью) |
Удаляет данные из таблицы истории History, HistoryDetail, HistoryCosts. Не удаляются строки, если заполнено поле hi_dgcod (т.е. информация относится к путевке).
Также после выполнения задания по очистке истории рекомендуется отдельно последовательно выполнить скрипты Defrag_history.sql и Defrag_HistoryDetail.sql для дефрагментации таблиц истории (строго во внерабочее время). Эти скрипты можно запросить у своего куратора. |
| Название БД_CleanQuotas Обрабатывается с релиза 15.9 |
SET DATEFORMAT YMD
Maintenance_CleanQuotas_job |
1 сутки (ночью) |
Удаляет данные из таблиц, связанных с квотами, историю квот, ServiceByDate и т.д.
Параметры задания задаются в настройке шага задания.
|
| Название БД_Reindex | Maintenance_reindex_job | 1 сутки (ночью) |
Производится обслуживание таблиц и статистики на таблицах в базе данных. Задание рекомендовано как замена штатных средств sql сервера, т.к. действия основываются на |
| Название БД_StatsUpdate
Обрабатывается с релиза 15.8, stable 2023.10 |
Maintenance_stats_run | 1 сутки (ночью) |
Задание обновления статистики в таблицах базы данных на основе изменения данных и веса таблицы в работе. Задание рекомендуется использовать только по согласованию с куратором, если массовые изменения данных после |
| Название БД_AutoMargin
Обрабатывается с релиза 15.9, stable 2025.6 |
AutoTourMargin | 1 час | Автоматическое добавление наценки на основе правила |
| Название БД_CleanSpecials Обрабатывается с релиза 15.9, stable 2025.20 |
SET DATEFORMAT YMD
Maintenance_CleanSpecials_job |
1 сутки (ночью) |
Удаляет данные из таблиц акций Specials/SpecialsHistory/SpecialsDates/SpecialsRelations. При каждом запуске и включенной настройке @deletebad удаляются акции, у которых нарушена целостность: удалена хоть одна сущность из справочников (пакет, партнер, ценовой блок, отель, транспорт, трансфер). Ниже указано описание настроек:
|
Список нестандартных заданий (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. |
Регламентные работы, рекомендованные Microsoft
В процессе эксплуатации системы рекомендуется проводить регламентные работы с помощью мастера планов обслуживания в SQL Server.
Мастер планов обслуживания создает план обслуживания, который агент Microsoft SQL Server может выполняться регулярно. Это позволяет выполнять различные задачи администрирования базы данных, включая резервное копирование, проверки целостности базы данных или обновление статистики базы данных через указанные интервалы времени.
Обратите внимание, что описанный в статье блок по реорганизации индекса reindex нужно пропустить. Наш reindex, который мы предоставляем – реализован с учетом особенностей нашего ПО.
Внутренние скрипты
Разработан скрипт для удаления акций по параметрам.
Расположен по пути \\Scripts\utils\Cleaning\Clean_Specials.sql
Запросить его можно у своего куратора.
