Мастер-Тур:Дефрагментация таблицы tp prices — различия между версиями

Материал из Megatec
Перейти к: навигация, поиск
[досмотренная версия][досмотренная версия]
(Новая страница: «Версия статьи от {{REVISIONDAY}}-{{REVISIONMONTH}}-{{REVISIONYEAR}}. ==Введение== Проводить дефрагментацию реко…»)
 
Строка 18: Строка 18:
 
* Выполнить скрипт '''02_prepare.sql''' по основной и поисковой базам данных. Данный скрипт удаляет информацию от предыдущих дефрагментаций.
 
* Выполнить скрипт '''02_prepare.sql''' по основной и поисковой базам данных. Данный скрипт удаляет информацию от предыдущих дефрагментаций.
 
* Выполнить скрипт '''03_run_1.sql''' на основной базе.
 
* Выполнить скрипт '''03_run_1.sql''' на основной базе.
* Подготовить хранимую процедуру Paging (на поисковой базе)
+
* Подготовить хранимую процедуру '''Paging''' (на поисковой базе)
** Сохранить копию текущего Paging
+
** Сохранить копию текущего '''Paging'''.
** Открыть paging (Programmability -> Stored Procedures -> Paging -> Modify)
+
** Открыть '''Paging''' ''(Programmability -> Stored Procedures -> Paging -> Modify)''.
** Внутри хранимки перед exec (@sql) вставить текст из скрипта '''04_sp_paging_notOptimized.sql'''
+
** Внутри хранимки '''Paging''' перед ''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''' на поисковой базе (можно выполнять одновременно).
* Работы во время выполнения скриптов 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''' будет выведено сообщение об этом.
+
** Во время выполнения скриптов '''05_run_2.sql''' и '''06_run_3.sql''' необходимо проверять загрузку таблицы ассоциаций. Для этого необходимо периодически выполнять скрипт '''07_check_load.sql'''. После того, как таблица ассоциаций будет загружена, при выполнении скрипта '''07_check_load.sql''' будет выведено сообщение об этом.
** Выполнить '''08_sp_getDefrPriceKey.sql'''
+
** Выполнить '''08_sp_getDefrPriceKey.sql'''.
** Переименовать '''TourDates.aspx''' в '''TourDates_initial.aspx'''
+
** Переименовать '''TourDates.aspx''' в '''TourDates_initial.aspx'''.
** Скопировать '''TourDates.aspx''' из папки с файлами дефрагментации в ПК Мастер-Web
+
** Скопировать '''TourDates.aspx''' из папки с файлами дефрагментации в ПК Мастер-Web.
** Возвратить paging (удалить из храминки текст из скрипта '''04_sp_paging_notOptimized.sql''')
+
** Возвратить '''Paging''' (удалить из храминки текст из скрипта '''04_sp_paging_notOptimized.sql''').
** После окончания выполнения '''06_run_3.sql''' TourDates.aspx удалить, TourDates_initial.aspx переименовать обратно в TourDates.aspx
+
** После окончания выполнения '''06_run_3.sql''' – '''TourDates.aspx''' удалить, '''TourDates_initial.aspx''' переименовать обратно в '''TourDates.aspx'''.
** Удалить скалярную функцию getDefrPriceKey
+
** Удалить скалярную функцию '''getDefrPriceKey''', созданную скриптом '''08_sp_getDefrPriceKey.sql'''.

Версия 10:59, 18 декабря 2014

Версия статьи от 18-12-2014.

Введение

Проводить дефрагментацию рекомендуется в том случае, если заканчивается количество ключей в таблице 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) вставить текст из скрипта 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.sqlTourDates.aspx удалить, TourDates_initial.aspx переименовать обратно в TourDates.aspx.
    • Удалить скалярную функцию getDefrPriceKey, созданную скриптом 08_sp_getDefrPriceKey.sql.