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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.02.2013, 09:43   #1  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,039 / 1633 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
Компиляция с перекрестными ссылками для 2012 R2
Вопрос - а кто-нибудь запускал компиляцию с перекрестными ссылками на 2012 R2 при условии что АОС и SQL - это разные машины?
я вот тут запустил и уже 3 дня она идет.
Лог активности SQL показывает примерно 400 запросов в секунду, т.е. процесс явно движется, но медленно, вот хочу понять это глюки конкретного окружения или у всех так
Старый 06.02.2013, 10:45   #2  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от trud Посмотреть сообщение
Вопрос - а кто-нибудь запускал компиляцию с перекрестными ссылками на 2012 R2 при условии что АОС и SQL - это разные машины?
я вот тут запустил и уже 3 дня она идет.
Лог активности SQL показывает примерно 400 запросов в секунду, т.е. процесс явно движется, но медленно, вот хочу понять это глюки конкретного окружения или у всех так
У нас это две отдельные задачи:
- компиляция еженощно (в среднем 3.5 часа)
- перекрестные ссылки раз в неделю (в среднем 4.5 часа)

AOS и SQL - виртуалки (не уверен на одном ли они физическом хосте или на разных), одновеменно идет компиляция на двух инстансах, на сиквеле устовшаяся нагрузка в районе 2.5-3K batch requests/sec. По идее, компиляция с перекрестными ссылками должна была бы занимать часов 8 (3.5 + 4.5). Могу попробовать, если интересно

P.S. поэкспериментируйте с автообновлением статистики - я в последнее время везде отключаю
__________________
-ТСЯ или -ТЬСЯ ?
За это сообщение автора поблагодарили: mazzy (2).
Старый 06.02.2013, 10:54   #3  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,039 / 1633 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
Цитата:
Сообщение от Vadik Посмотреть сообщение
По идее, компиляция с перекрестными ссылками должна была бы занимать часов 8 (3.5 + 4.5). Могу попробовать, если интересно
Да, интересно. если не трудно, запустите на АОТ с включенной галочкой перекрестные ссылки

А версия у вас именно 6.2.158? Диски под бд обычные или SSD?
Старый 06.02.2013, 11:08   #4  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от trud Посмотреть сообщение
Да, интересно. если не трудно, запустите на АОТ с включенной галочкой перекрестные ссылки
Поменял на <CompileApplication crossReference="yes" /> - ночью отработает, завтра отпишу
Цитата:
А версия у вас именно 6.2.158?
да
Цитата:
Диски под бд обычные или SSD?
Там SAN, диски обычные, механика. В принципе дисковая у нас на этих инстансах никогда узким местом не была, так что не должно быть критично, но помониторьте average sec / transfer, особенно для массива с transaction log

P.S. Да, еще вспомнил - у нас домен параноики администрируют, долго бодался чтобы отключить On access сканирование антивирусом - сильно мешает, особенно при обновлении CIL
__________________
-ТСЯ или -ТЬСЯ ?
Старый 07.02.2013, 17:00   #5  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от Vadik Посмотреть сообщение
Поменял на <CompileApplication crossReference="yes" /> - ночью отработает, завтра отпишу
Отработало за 4 часа 6 минут
__________________
-ТСЯ или -ТЬСЯ ?
За это сообщение автора поблагодарили: trud (1).
Старый 07.02.2013, 17:09   #6  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от trud Посмотреть сообщение
Вопрос - а кто-нибудь запускал компиляцию
компиляция в CIL генерит огромное количество мелких файлов в каталоге %server%\bin\XppIL
скорее всего, тормозит именно с этим.

нужно обязательно сделать отдельно компиляцию, отдельно компиляцию в CIL
и уже потом можно со спокойной совестью запускать компиляцию с перекрестными ссылками.

у меня на ноутбуке - около 8 часов. за ночь успевает.
Миниатюры
Нажмите на изображение для увеличения
Название: 1.PNG
Просмотров: 452
Размер:	34.4 Кб
ID:	8052  
Старый 01.07.2013, 11:47   #7  
Maximin is offline
Maximin
NavAx
NavAx Club
 
412 / 346 (12) ++++++
Регистрация: 09.10.2002
Адрес: Москва
Нашел очень интересную kb:
2844240 - Last Review: May 9, 2013
You experience slow performance when you run the X++ compilation in Microsoft Dynamics AX 2012 R2

When you run the X++ compilation in Microsoft Dynamics AX 2012 R2, you experience slow performance.

This problem occurs because the SQL Query Optimizer might not calculate the optimal query path for one of the frequent queries against the ModelSecurityPermission model store table. This happens because of an added Primary Key for this table in Microsoft Dynamics AX 2012 R2 and when it happens, it a causes a significant performance penalty.

Чего делать с этим - сами догадаетесь, ибо выкладывать hotfix - MS обидится.
Пролетало и на форуме: axtools: AX2012 R2 hotfix available to improve compile speed
__________________
Жизнь прекрасна! Если, конечно, правильно подобрать антидепрессанты...

Последний раз редактировалось Maximin; 01.07.2013 в 13:14. Причина: Добавил номер kb
За это сообщение автора поблагодарили: Logger (3).
Старый 01.07.2013, 11:52   #8  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2156 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Я думаю, MS не обидится, если вы номер KB выложите
__________________
Ivanhoe as is..
Старый 01.07.2013, 13:43   #9  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от Maximin Посмотреть сообщение
Нашел очень интересную kb2844240: You experience slow performance when you run the X++ compilation in Microsoft Dynamics AX 2012 R2
Чего делать с этим - сами догадаетесь, ибо выкладывать hotfix - MS обидится.
Хотфиксы ныне - в открытом доступе, так что дополнительно ничего выкладывать не надо.
За это сообщение автора поблагодарили: Logger (1).
Старый 02.07.2013, 17:19   #10  
Maximin is offline
Maximin
NavAx
NavAx Club
 
412 / 346 (12) ++++++
Регистрация: 09.10.2002
Адрес: Москва
Кстати, да - только если пользоваться этой прямой ссылкой на получение.
Так даже можно получить KB2854933 с последним билдом 2009й, статьи KB на который вообще не существует.
__________________
Жизнь прекрасна! Если, конечно, правильно подобрать антидепрессанты...
Старый 23.10.2014, 11:00   #11  
Dreadlock is offline
Dreadlock
Участник
Аватар для Dreadlock
 
298 / 224 (8) ++++++
Регистрация: 07.05.2009
Адрес: Москва
Тоже столкнулся с подобной проблемой, построение перекрестных ссылок длилось неделю. Нашел статью, сделал как описано. Перестроились за 6ть часов.
Старый 28.06.2020, 09:30   #12  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Dreadlock Посмотреть сообщение
Нашел статью, сделал как описано. Перестроились за 6ть часов.
поскольку сайты пропадают, выложу здесь:

если одновременно установить галочки "Удалить все" и "Обновить все", то ax2012 входить в бесконечный цикл

в ax2012 нужно генерить в два захода:
1. сначала удалить перекресные ссылки
2. после того как удаление завершится, запустить обновление перекрестных ссылок
__________________
полезное на axForum, github, vk, coub.
За это сообщение автора поблагодарили: Logger (5).
Старый 28.06.2020, 14:26   #13  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
столкнулся с аналогичным случаем на проекте.
уж не знаю насколько прав Palle Agermarks в своей статье.
насколько я понимаю, все сложнее и проще одновременно.

в ax2012 генерацию перекрестных ссылок сделали пакетным заданием.
см. xRefUpdateIL::updateAllXref()

что с одной стороны, правильно.
с другой стороны - предупреждать надо.

соответственно, чтобы перекрестные ссылки строились, вам нужно разрешить выполнение пакетного сервера на правильном АОСе и разобраться с задачами в статусе execution

АОС часто не включен, если вы перетаскиваете базу из рабочей в тест или в прод
АОС часто странно настроен, если вы берете за основу демобазу
в демобазе в задачах вааще караул - какие-то задания и задачи зависли, какие-то странные тестовые.

В общем, чтобы получить перекрестные ссылки в ax2012 нужно разгрести пакетные задания и запустить пакетный сервер.
__________________
полезное на axForum, github, vk, coub.

Последний раз редактировалось mazzy; 28.06.2020 в 15:46.
Старый 29.06.2020, 09:13   #14  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1296 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Цитата:
Сообщение от mazzy Посмотреть сообщение
если одновременно установить галочки "Удалить все" и "Обновить все", то ax2012 входить в бесконечный цикл.
Скорее всего, беда в чем-то другом. Мы перестраиваем перекрестные ссылки всегда с обоими включенными флагами. Билд 6.3.6000.8149
Вот с флагом "Выбрано" у нас как-то не сложилось - с ним ни разу не удалось закончить.
Ну и с пакетным сервером после обновления DEV с PROD тоже постоянно забываем - после обновления запускаем перекрестные ссылки и пытаемся понять, почему они не перестраиваются, а только удаляются.
Миниатюры
Нажмите на изображение для увеличения
Название: Перекрестные ссылки.jpg
Просмотров: 109
Размер:	49.0 Кб
ID:	12860  
За это сообщение автора поблагодарили: mazzy (2).
Старый 29.06.2020, 10:28   #15  
Dreadlock is offline
Dreadlock
Участник
Аватар для Dreadlock
 
298 / 224 (8) ++++++
Регистрация: 07.05.2009
Адрес: Москва
Внесу еще 5 копеек в эту тему.

Обычно, разработка ведется на одном слое. В моём случае это CUS слой.
Можно сделать проект:
Нажмите на изображение для увеличения
Название: 2020-06-29_10-14-40.jpg
Просмотров: 102
Размер:	184.2 Кб
ID:	12861

Потом применить перекрестные ссылки к компиляции:
Нажмите на изображение для увеличения
Название: 2020-06-29_10-19-26.jpg
Просмотров: 116
Размер:	35.1 Кб
ID:	12862
Название: 2020-06-29_10-19-48.jpg
Просмотров: 974

Размер: 34.8 Кб
Скомпелировать проект и, через пол часа получить перекрестные ссылки по всем изменениям в CUS слое.

Только нужно не забыть выключить генерацию перекрестных ссылок после этого. Иначе, каждая компиляция будет длиться немного дольше обычного.
За это сообщение автора поблагодарили: mazzy (2).
Старый 29.06.2020, 11:28   #16  
online
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,952 / 3230 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
А можно еще фильтровать по дате времени изменения за последние 1-2 дня (с момента последнего инкрементного сбора) тогда проект совсем маленький будет и все за 15 минут пересоберется.

Но есть нюанс.
В методе
\Classes\SysProjectFilterRunBase\run
надо добавить такое изменение:

X++:
...
    while (queryRun.next())
    {
        try
        {
            sysModelElement = queryRun.get(tableNum(SysModelElement)) as SysModelElement;
            sysModelElementData = queryRun.get(tableNum(SysModelElementData)) as SysModelElementData;

            // PKoz 31.10.2019 -->
            if (sysModelElement.RootModelElement == sysModelElement.RecId &&
                sysModelElement.ElementType      == 11 // form
               )
            {
                // почему-то ядро при сборе перекрестных ссылок (и возможно при глобальной компиляции - но это надо проверить)
                // обновляет для формочек свойство modifiedDateTime текущими значениями
                // а в modifiedBy похоже переносит значение из createdBy
                // из-за этого при попытке отфильтровать  созданные измененные объекты AOT
                // за период времени - в проект набивается куча левых форм
                // У этого исправления могут быть побочные эффекты если пытаемся отфильтровать именно формы с фильтром по elementType == Form
                // но этот способ все равно неправильный, нужно фильтровать по узлам формочек, перечисляя все их типы, так как в свойствах формы все равно
                // в полях
                // createdBy/modifiedby/createdDatetime/modifiedDatetime
                // лежит лажа и на нее закладываться нельзя
                // проще просто не ставить фильтр по типу объекта (отборка идет быстро)
                // а затем выкинуть из проекта лишние узлы, которые нас не интересовали
                continue;
            }
            // PKoz 31.10.2019 <--
...
За это сообщение автора поблагодарили: mazzy (2), sukhanchik (6), Ace of Database (2), alex55 (3), Dreadlock (1).
Старый 29.06.2020, 12:41   #17  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,322 / 3547 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от Dreadlock Посмотреть сообщение
Обычно, разработка ведется на одном слое
Тут требуется уточнение. Разработка действительно обычно ведется в одном слое. Но вот перекрестные ссылки по слою представляют собой ценность только, если работа ведется с объектами исключительно из этого слоя.
Я любил в 3.0 строить перекрестные ссылки по слою, уходя на обед.
Но вот если работа ведется и со стандартным функционалом - то такой вариант будет недостаточен.
Например, Вы внесли изменения в код приема сотрудника на работу, но чтобы посмотреть, в скольких еще местах вызывается этот код - нужны полные ссылки.
__________________
Возможно сделать все. Вопрос времени
Старый 29.06.2020, 12:57   #18  
online
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,952 / 3230 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от Logger Посмотреть сообщение
А можно еще фильтровать по дате времени изменения

или датевремени создания.
Так надежнее
Старый 29.06.2020, 14:01   #19  
Dreadlock is offline
Dreadlock
Участник
Аватар для Dreadlock
 
298 / 224 (8) ++++++
Регистрация: 07.05.2009
Адрес: Москва
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
Тут требуется уточнение. Разработка действительно обычно ведется в одном слое. Но вот перекрестные ссылки по слою представляют собой ценность только, если работа ведется с объектами исключительно из этого слоя.
Я любил в 3.0 строить перекрестные ссылки по слою, уходя на обед.
Но вот если работа ведется и со стандартным функционалом - то такой вариант будет недостаточен.
Например, Вы внесли изменения в код приема сотрудника на работу, но чтобы посмотреть, в скольких еще местах вызывается этот код - нужны полные ссылки.
100% с вами согласен. Но, чтобы сэкономить время, можно один раз собрать все ссылки а уже после, можно применять вышеописанный мной подход.
Старый 29.06.2020, 14:28   #20  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,322 / 3547 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от Dreadlock Посмотреть сообщение
100% с вами согласен. Но, чтобы сэкономить время, можно один раз собрать все ссылки а уже после, можно применять вышеописанный мной подход.
Согласен. А с побочными эффектами не сталкивались? Т.е. с ситуацией, когда:
1. Объект удален / переименован, а информация о нем еще жива в ссылках? Это лечится только удалением, но галка Удалить все удаляет все записи в таблицах
2. Когда делается обновление ссылок без предварительного удаления, то данные двоятся - троятся и т.д. по количеству запусков перестроения ссылок. У меня такое было в 3.0, 4.0, 2009. В 2012 я уже не экспериментировал с этим и сразу удалял ссылки.
__________________
Возможно сделать все. Вопрос времени
Теги
ax2012, cil, перекрестные ссылки, производительность

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
amer-ax: It was a great day! Blog bot DAX Blogs 3 29.12.2012 01:02
dynamicsaxbi: Better together: Microsoft Dynamics AX 2012 R2 and SQL Server Power View Blog bot DAX Blogs 0 12.12.2012 13:11
emeadaxsupport: Final Microsoft Dynamics AX 2012 R2 Content Available! Blog bot DAX Blogs 0 04.12.2012 06:12
DAX: Official Dynamics AX 2012 R2 Content (update) - Where is it, and how can you find out about updates? Blog bot DAX Blogs 0 03.12.2012 11:11
dynamicsaxtraining: Purchase Blog bot DAX Blogs 0 11.03.2012 05:25

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

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

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