06.02.2013, 09:43 | #1 |
Участник
|
Компиляция с перекрестными ссылками для 2012 R2
Вопрос - а кто-нибудь запускал компиляцию с перекрестными ссылками на 2012 R2 при условии что АОС и SQL - это разные машины?
я вот тут запустил и уже 3 дня она идет. Лог активности SQL показывает примерно 400 запросов в секунду, т.е. процесс явно движется, но медленно, вот хочу понять это глюки конкретного окружения или у всех так |
|
06.02.2013, 10:45 | #2 |
Модератор
|
Цитата:
Сообщение от 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 |
Участник
|
Цитата:
А версия у вас именно 6.2.158? Диски под бд обычные или SSD? |
|
06.02.2013, 11:08 | #4 |
Модератор
|
Цитата:
Цитата:
А версия у вас именно 6.2.158?
Цитата:
Диски под бд обычные или SSD?
P.S. Да, еще вспомнил - у нас домен параноики администрируют, долго бодался чтобы отключить On access сканирование антивирусом - сильно мешает, особенно при обновлении CIL
__________________
-ТСЯ или -ТЬСЯ ? |
|
07.02.2013, 17:00 | #5 |
Модератор
|
Отработало за 4 часа 6 минут
__________________
-ТСЯ или -ТЬСЯ ? |
|
|
За это сообщение автора поблагодарили: trud (1). |
07.02.2013, 17:09 | #6 |
Участник
|
компиляция в CIL генерит огромное количество мелких файлов в каталоге %server%\bin\XppIL
скорее всего, тормозит именно с этим. нужно обязательно сделать отдельно компиляцию, отдельно компиляцию в CIL и уже потом можно со спокойной совестью запускать компиляцию с перекрестными ссылками. у меня на ноутбуке - около 8 часов. за ночь успевает. |
|
01.07.2013, 11:47 | #7 |
NavAx
|
Нашел очень интересную 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 |
Участник
|
Я думаю, MS не обидится, если вы номер KB выложите
__________________
Ivanhoe as is.. |
|
01.07.2013, 13:43 | #9 |
Участник
|
Цитата:
|
|
|
За это сообщение автора поблагодарили: Logger (1). |
02.07.2013, 17:19 | #10 |
NavAx
|
Кстати, да - только если пользоваться этой прямой ссылкой на получение.
Так даже можно получить KB2854933 с последним билдом 2009й, статьи KB на который вообще не существует.
__________________
Жизнь прекрасна! Если, конечно, правильно подобрать антидепрессанты... |
|
23.10.2014, 11:00 | #11 |
Участник
|
Тоже столкнулся с подобной проблемой, построение перекрестных ссылок длилось неделю. Нашел статью, сделал как описано. Перестроились за 6ть часов.
|
|
28.06.2020, 09:30 | #12 |
Участник
|
Цитата:
Сообщение от Dreadlock
Нашел статью, сделал как описано. Перестроились за 6ть часов.
если одновременно установить галочки "Удалить все" и "Обновить все", то ax2012 входить в бесконечный цикл в ax2012 нужно генерить в два захода: 1. сначала удалить перекресные ссылки 2. после того как удаление завершится, запустить обновление перекрестных ссылок |
|
|
За это сообщение автора поблагодарили: Logger (5). |
28.06.2020, 14:26 | #13 |
Участник
|
столкнулся с аналогичным случаем на проекте.
уж не знаю насколько прав Palle Agermarks в своей статье. насколько я понимаю, все сложнее и проще одновременно. в ax2012 генерацию перекрестных ссылок сделали пакетным заданием. см. xRefUpdateIL::updateAllXref() что с одной стороны, правильно. с другой стороны - предупреждать надо. соответственно, чтобы перекрестные ссылки строились, вам нужно разрешить выполнение пакетного сервера на правильном АОСе и разобраться с задачами в статусе execution АОС часто не включен, если вы перетаскиваете базу из рабочей в тест или в прод АОС часто странно настроен, если вы берете за основу демобазу в демобазе в задачах вааще караул - какие-то задания и задачи зависли, какие-то странные тестовые. В общем, чтобы получить перекрестные ссылки в ax2012 нужно разгрести пакетные задания и запустить пакетный сервер. Последний раз редактировалось mazzy; 28.06.2020 в 15:46. |
|
29.06.2020, 09:13 | #14 |
Участник
|
Цитата:
Вот с флагом "Выбрано" у нас как-то не сложилось - с ним ни разу не удалось закончить. Ну и с пакетным сервером после обновления DEV с PROD тоже постоянно забываем - после обновления запускаем перекрестные ссылки и пытаемся понять, почему они не перестраиваются, а только удаляются. |
|
|
За это сообщение автора поблагодарили: mazzy (2). |
29.06.2020, 10:28 | #15 |
Участник
|
Внесу еще 5 копеек в эту тему.
Обычно, разработка ведется на одном слое. В моём случае это CUS слой. Можно сделать проект: Потом применить перекрестные ссылки к компиляции: Скомпелировать проект и, через пол часа получить перекрестные ссылки по всем изменениям в CUS слое. Только нужно не забыть выключить генерацию перекрестных ссылок после этого. Иначе, каждая компиляция будет длиться немного дольше обычного. |
|
|
За это сообщение автора поблагодарили: mazzy (2). |
29.06.2020, 11:28 | #16 |
Участник
|
А можно еще фильтровать по дате времени изменения за последние 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 |
Administrator
|
Тут требуется уточнение. Разработка действительно обычно ведется в одном слое. Но вот перекрестные ссылки по слою представляют собой ценность только, если работа ведется с объектами исключительно из этого слоя.
Я любил в 3.0 строить перекрестные ссылки по слою, уходя на обед. Но вот если работа ведется и со стандартным функционалом - то такой вариант будет недостаточен. Например, Вы внесли изменения в код приема сотрудника на работу, но чтобы посмотреть, в скольких еще местах вызывается этот код - нужны полные ссылки.
__________________
Возможно сделать все. Вопрос времени |
|
29.06.2020, 12:57 | #18 |
Участник
|
|
|
29.06.2020, 14:01 | #19 |
Участник
|
Цитата:
Сообщение от sukhanchik
Тут требуется уточнение. Разработка действительно обычно ведется в одном слое. Но вот перекрестные ссылки по слою представляют собой ценность только, если работа ведется с объектами исключительно из этого слоя.
Я любил в 3.0 строить перекрестные ссылки по слою, уходя на обед. Но вот если работа ведется и со стандартным функционалом - то такой вариант будет недостаточен. Например, Вы внесли изменения в код приема сотрудника на работу, но чтобы посмотреть, в скольких еще местах вызывается этот код - нужны полные ссылки. |
|
29.06.2020, 14:28 | #20 |
Administrator
|
Цитата:
1. Объект удален / переименован, а информация о нем еще жива в ссылках? Это лечится только удалением, но галка Удалить все удаляет все записи в таблицах 2. Когда делается обновление ссылок без предварительного удаления, то данные двоятся - троятся и т.д. по количеству запусков перестроения ссылок. У меня такое было в 3.0, 4.0, 2009. В 2012 я уже не экспериментировал с этим и сразу удалял ссылки.
__________________
Возможно сделать все. Вопрос времени |
|
Теги |
ax2012, cil, перекрестные ссылки, производительность |
|
|