AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 24.06.2011, 14:38   #1  
Link is offline
Link
Британский учённый
Аватар для Link
Соотечественники
 
568 / 523 (19) +++++++
Регистрация: 25.11.2005
Адрес: UK
Записей в блоге: 9
Цитата:
Сообщение от gl00mie Посмотреть сообщение
Если по существу, то ниже приведена кое-какая информация (применимая к 4.0 и шведскому функционалу) из того, что я делал для оптимизации работы скриптов обновления данных. После тестовой конвертации базы были выявлены самые "долгоиграющие" скрипты и они оптимизировались в первую очередь.
Спасибо! А можно узнать размер базы и время на синхронизацию и постсинхронизацию.
У меня база в 400Гб, апгрейд с 4ки на 2009.
Тестовый апгрейд выполняется на одном сервере, с виртуализацией под VMWare, ОС Win 2008R2 SP1x64, SQL 2008 SP2 + KB979065. Апгрейд боевой базы, будет проводиться на нескольких серверах, но тоже с виртуализацией.
Фаза синхронизации проходит за 12 часов на тестовом сервере.
Сейчас выполняется постсинхронизация и очень похоже, что тоже придется оптимизировать скрипты.
Старый 24.06.2011, 21:12   #2  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5813 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
В моем случае конвертировалась база 3.0 размером чуть больше 600 Гб, происходило все на Оракле. Отличие от конвертации базы 4.0 тут в том, что для 2009-й создается новая база, в которую переливаются данные с одновременной конвертацией в Unicode, а уже потом по этой новой базе работают скрипты конвертации. Опять же, в моем случае под 2009-ю был разведен новый комплекс СУБД (хранилище данных и сервера БД), поэтому одним из этапов конвертации было создание "слепка" базы 3.0 на этом новом комплексе: оказалось быстрее сперва перелить данные по сети средствами СУБД и потом уже в рамках одного физического хранилища переливать данные из этого слепка в базу 2009-й, нежели напрямую из старого комплекса переливать их в базу 2009-й по сети. Ниже приводится хронология событий, восстановленная по информации, которую я публиковал для заинтересованных лиц по ходу конвертации.
  • 31.12.10 00:00 начало создания "слепка" рабочей базы на новом комплексе (копирование данных средствами СУБД)
  • 31.12.10 02:52 запуск скриптов переливки данных из слепка базы 3.0 в базу AX 2009
  • 31.12.10 07:15 (приблизительно - по данным об активности СУБД) завершение скриптов переливки данных из слепка - этот момент я это благополучно проспал
  • 31.12.10 09:02 запуск контрольного списка обновления в AX 2009
  • 31.12.10 09:23 запуск скриптов перед синхронизацией БД
  • 31.12.10 09:23 запуск синхронизации БД
  • 31.12.10 09:40 начало реальной активности (AX 2009 сперва собирает сведения и показывает, что будет делать при синхронизации, а уже потом собственно приступает к работе). За счет распараллеливания создания индексов, которые были удалены перед заливкой данных из 3.0, СУБД очень неплохо нагружается, см., скажем, http://i56.tinypic.com/2vht750.png
  • 31.12.10 11:42 оракловая нода, к которой подключен AOS, на создании индексов по SalesTable объелась памяти, ушла в своп и начала отстреливать активные сессии. AOS попал под обстрел и свалился
  • 31.12.10 11:56 как раз в тот момент, когда я перезапустил AOS и хотел было продолжить синхронизацию, у меня пропало соединение с тырнетом (где-то на полчаса, как оказалось). Надо было подумать о резервном канале
  • 31.12.10 12:07 связался с коллегой, он возобновил синхронизацию
  • 31.12.10 15.30 синхронизация завершилась, но с ошибками на создании нескольких индексов. Для прохождения контрольного списка нужно, чтобы ошибок не было, - пришлось разбираться
  • 31.12.10 17:01 запущены пакетные обработки после синхронизации
  • 31.12.10 23:53 скрипты конвертации данных завершили свою работу. на все про все ушло 6:51:53 "календарного" времени и порядка 76:31:22 времени БД (т.е. скрипты неплохо распараллелились). За счет тонкой настройки СУБД удалось ускориться по сравнению с последней тестовой конвертацией (82:25:15 времени БД). Я не ожидал, что скрипты конвертации отработают так быстро, поэтому заметил, что все закончилось, лишь полтора часа спустя
  • 01.01.11 01:20 отключены конфигурационные ключи SysDeletedObjects40 и SysDeletedObjects41 и запущена повторная синхронизация (в принципе, это можно было отложить на потом).
  • 01.01.11 08:40 вылезла ошибка с сообщением о том, что после удаления ненужных полей один из индексов стал индексировать ровно те же поля, что и другой индекс, а для СУБД это неприемлемо. Из-за того, что я не удалил точки останова на выводе ошибок, вылез отладчик, и синхронизация на этом застопорилась. Это событие я тоже проспал
  • 01.01.11 10:15 я вырубил отладчик, и синхронизация продолжилась
  • 01.01.11 13:28 синхронизация после обновления закончилась, начаты кое-какие дополнительные настройки, в основном касающиеся пользователей
  • 01.01.11 16:10 список обновления выполнен полностью, начата выгрузка данных в кубы, чтобы сверить основные транзакционные таблицы "до и после".
За это сообщение автора поблагодарили: Link (1), oip (5).
Старый 01.07.2011, 16:13   #3  
Link is offline
Link
Британский учённый
Аватар для Link
Соотечественники
 
568 / 523 (19) +++++++
Регистрация: 25.11.2005
Адрес: UK
Записей в блоге: 9
Спасибо, за столь подробный пост.
Похоже что на MSSQL все выглядит гораздо лучше, без оптимизаций.
Постсинхронизация проходит за 6 часов, правда на 2008 сервере под VMWare съедает всю доступную память - 15 ГБ.
Пробовал экспортировать в сиквел процесс синхронизации, как указанно в мануале, это может дать улучшение производительности при параллельном запуске на нескольких клиентах. Сразу насторожило предупреждение, что все на свой страх и риск. А потом когда выгрузил в сиквел, и увидел сколько там ошибок, от этой идеи отказался.

Мы подумываем воспользоваться зеркалом базы для апгрейда, дабы сэкономить время на копирование или восстановление.
Интересно, вы данные через кубы проверяли. У меня простой джоб все в ексель выкладывает. В чем было преимущество делать через кубы?

А мультисайт сразу активировали? Кто то говорил, что лучше через неделю после успешной работы на новой версии. Гайд по этом поводу предательски молчит.
Старый 01.07.2011, 16:35   #4  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5813 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от Link Посмотреть сообщение
Похоже что на MSSQL все выглядит гораздо лучше, без оптимизаций. Постсинхронизация проходит за 6 часов
Это, видимо, без фиговой тучи скриптов обновления базы 3.0 -> 4.0.
Цитата:
Сообщение от Link Посмотреть сообщение
правда на 2008 сервере под VMWare съедает всю доступную память - 15 ГБ.
Настройкой СУБД занимался не я, так что тут вряд ли чем помогу. На оракловом сервере, про который я писал, что он ушел в своп, памяти было 48 Гб
Цитата:
Сообщение от Link Посмотреть сообщение
Пробовал экспортировать в сиквел процесс синхронизации, как указанно в мануале, это может дать улучшение производительности при параллельном запуске на нескольких клиентах.
В моем случае ощутимо ускориться удалось еще за счет того, что пакетный сервер был настроен на гораздо большее число потоков, нежели штатные 8: не все, конечно, но часть скриптов очень хорошо распараллеливается, а основная нагрузка все равно приходится на СУБД, поэтому при настройке имеет смысл ориентироваться на число ядер сервера БД, а не AOS.
Цитата:
Сообщение от Link Посмотреть сообщение
Интересно, вы данные через кубы проверяли. У меня простой джоб все в ексель выкладывает. В чем было преимущество делать через кубы?
В транзакционных таблицах - десятки миллионов записей, Excel подавится. К тому же отделом отчетности, который "ворочает кубы", были заранее написаны соотв. скрипты, и было бы глупо отказываться от удачной возможности переложить на них часть работы по выверке данных
Цитата:
Сообщение от Link Посмотреть сообщение
А мультисайт сразу активировали?
Нет, не сразу. Вообще, первый где-то месяц-полтора было не до мультисайта
Старый 24.06.2011, 21:28   #5  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5813 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от Link Посмотреть сообщение
Сейчас выполняется постсинхронизация и очень похоже, что тоже придется оптимизировать скрипты.
В моем случае самый первый тестовый прогон конвертации (со стандартными скриптами) занял полторы недели Правда, надо признать, и настройка СУБД тогда была, мягко говоря, неоптимальной...
Теги
ax2009, ax4.0, upgrade, производительность

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Оптимизация класса Tax Lihgt DAX: Программирование 43 27.05.2022 11:05
оптимизация запроса статистики по клиенту wojzeh DAX: Программирование 2 26.04.2011 05:08
Оптимизация SQL сервера под Аксапту. 3oppo DAX: Администрирование 23 03.08.2010 14:08
Оптимизация кода с LedgerTrans Poleax DAX: Программирование 18 07.11.2008 12:32
Оптимизация производственного планирования Fisher DAX: Прочие вопросы 19 16.04.2005 11:57

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 16:08.