Мастер-Тур:Дефрагментация таблицы tp prices — различия между версиями
[досмотренная версия] | [досмотренная версия] |
Biryukov (обсуждение | вклад) |
Biryukov (обсуждение | вклад) (→Процесс выполнения дефрагментации) |
||
Строка 23: | Строка 23: | ||
** Сохранить копию текущего '''Paging'''. | ** Сохранить копию текущего '''Paging'''. | ||
** Открыть '''Paging''' ''(Programmability -> Stored Procedures -> Paging -> Modify)''. | ** Открыть '''Paging''' ''(Programmability -> Stored Procedures -> Paging -> Modify)''. | ||
− | ** Внутри хранимки '''Paging''' перед ''exec (@sql)'' вставить текст из скрипта '''04_sp_paging_notOptimized.sql'''. | + | ** Внутри хранимки '''Paging''' перед ''exec (@sql)'' (если встречается несколько ''exec (@sql)'', то использовать тот, который в конце) вставить текст из скрипта '''04_sp_paging_notOptimized.sql'''. |
** Выполнить измененный '''Paging'''. | ** Выполнить измененный '''Paging'''. | ||
* Выполнить '''05_run_2.sql''' на основной базе и '''06_run_3.sql''' на поисковой базе (можно выполнять одновременно). | * Выполнить '''05_run_2.sql''' на основной базе и '''06_run_3.sql''' на поисковой базе (можно выполнять одновременно). |
Текущая версия на 16:03, 2 марта 2015
Версия статьи от 2-03-2015.
Введение
Проводить дефрагментацию рекомендуется в том случае, если заканчивается количество ключей в таблице TP_Prices.
Время выполнения дефрагментации зависит от количества цен в базе данных, он мощности сервера и нагрузки на сервер. Дефрагментация 400 млн. цен выполняется в среднем 3-4 дня.
Подготовка к дефрагментации
Для того, чтобы понять, нужно ли проводить дефрагментацию или нет, необходимо выполнить скрипт 01_info.sql. После выполнения скрипта будет выведено сообщение о том, требуется ли дефрагментация или нет.
Во время выполнения дефрагментации нельзя производить расчет/дозапись туров, нельзя производить выставление/снятие туров, нельзя использовать плагины "PriceRemover", "Корректировка рассчитанных цен". Будет доступен поиск, бронирование, работа с путевками, счетами.
Желательно снять нагрузку с баз данных (отключить все сервиса, которые обращаются к базе данных).
Процесс выполнения дефрагментации
Скрипты дефрагментации по частям выполнять нельзя
- Отключить SQL ServerAgent, чтобы не обрабатывались никакие задания.
- Выполнить скрипт 02_prepare.sql по основной и поисковой базам данных. Данный скрипт удаляет информацию от предыдущих дефрагментаций.
- Выполнить скрипт 03_run_1.sql на основной базе.
- Подготовить хранимую процедуру Paging (на поисковой базе)
- Сохранить копию текущего Paging.
- Открыть Paging (Programmability -> Stored Procedures -> Paging -> Modify).
- Внутри хранимки Paging перед exec (@sql) (если встречается несколько exec (@sql), то использовать тот, который в конце) вставить текст из скрипта 04_sp_paging_notOptimized.sql.
- Выполнить измененный Paging.
- Выполнить 05_run_2.sql на основной базе и 06_run_3.sql на поисковой базе (можно выполнять одновременно).
- Работы во время выполнения скриптов 05_run_2.sql и 06_run_3.sql.
- Во время выполнения скриптов 05_run_2.sql и 06_run_3.sql необходимо проверять загрузку таблицы ассоциаций. Для этого необходимо периодически выполнять скрипт 07_check_load.sql. После того, как таблица ассоциаций будет загружена, при выполнении скрипта 07_check_load.sql будет выведено сообщение об этом.
- Выполнить 08_sp_getDefrPriceKey.sql.
- Переименовать TourDates.aspx в TourDates_initial.aspx.
- Скопировать TourDates.aspx из папки с файлами дефрагментации в ПК Мастер-Web.
- Возвратить Paging (удалить из храминки текст из скрипта 04_sp_paging_notOptimized.sql).
- После окончания выполнения 06_run_3.sql – TourDates.aspx удалить, TourDates_initial.aspx переименовать обратно в TourDates.aspx.
- Удалить скалярную функцию getDefrPriceKey, созданную скриптом 08_sp_getDefrPriceKey.sql.