30.12.2009, 12:37 | #1 |
Участник
|
Загрузка строк Purchase order
DAX 2009
Привет, всем Загружаю данные из файла в purchase order. На основании этих данных создаю линии. Для создания линий использую стандартный метод purchLine.createLine(...). Проблема в производительности: 1. При создании строк в Purchase order создаются строки в связанном Sales order (через Inter company). При загрузке 1640 строк работает примерно 7 минут. 2. При отключении автоматического резервирования для sales lines - порядка 6 минут. 3. Если не создавать связанный Sales order, то есть создавать записи только в Purchase Order, то около 70 секунд. Отсюда я делаю вывод, что основное время уходит на создание inter company sales lines. Можно ли как-нибудь увеличить скорость загрузки? Я понимаю, что вопрос звучит не конкретно, но может быть, кому-нибудь приходилось решать подобную задачу? Заранее спасибо за любую помощь. |
|
30.12.2009, 12:43 | #2 |
Участник
|
инструменты те же самые:
http://axapta.mazzy.ru/lib/querytuning/ Не работает трассировка SQL axperf: TraceParser Video Training Part I: Installation axperf: TraceParser Video Training Part II: Configuration, Collection and Importing трассировка кода, traceparser (это ключевые слова для поиска на форуме) вы не указали - русская или международная версия ax2009 вы не указали как у вас работает intercompany - в одной и той же базе данных или в разных (связь при помощи business Connector) сильно подозреваю, что проблема в axd-классах и/или в бизнес-коннекторе. |
|
|
За это сообщение автора поблагодарили: nano3 (1). |
30.12.2009, 12:55 | #3 |
Участник
|
|
|
30.12.2009, 12:57 | #4 |
Участник
|
Спасибо за ответ.
Версия Международная intercompany в одной и той же базе Файл CVS |
|
30.12.2009, 13:22 | #5 |
Участник
|
тогда парсер-трейсер в руки и вперед
|
|
30.12.2009, 13:30 | #6 |
Участник
|
Посмотрите еще вот что. Есть один баг в Ах 4.0, возможно он сохранился и в Ах2009 (у меня её нет, не могу проверить). Суть в том, что при создании записей Purchline работает табличный метод Purchline.TaxByLine(), и в нем такой запрос:
X++: select sum(TaxAmount) from taxTrans where taxTrans.InventTransId == this.InventTransId; Последний раз редактировалось Zabr; 30.12.2009 в 14:05. |
|
|
За это сообщение автора поблагодарили: AlexArh (1), nano3 (1). |
30.12.2009, 13:39 | #7 |
Участник
|
Еще: у вас по клиентам не включен ли контроль кредитного лимита ? Тоже может тормозить, поскольку проверяется при создании каждой строчки SalesLine, но тут уж не знаю чем помочь, если контроль реально нужен.
|
|
30.12.2009, 14:40 | #8 |
Участник
|
Цитата:
Сообщение от Zabr
Посмотрите еще вот что. Есть один баг в Ах 4.0, возможно он сохранился и в Ах2009 (у меня её нет, не могу проверить). Суть в том, что при создании записей Purchline работает табличный метод Purchline.TaxByLine(), и в нем такой запрос:
X++: select sum(TaxAmount) from taxTrans where taxTrans.InventTransId == this.InventTransId;
__________________
Ivanhoe as is.. |
|
30.12.2009, 16:22 | #9 |
Участник
|
Именно так, в Ax 4.0 он также только проверяет неиспользуемый налог 1099, и я этот код именно просто закомментировал. Получается, в Ax2009 можно сделать то же самое и это даст заметное ускорение (если только в Ax2009 так и не сделали нужный индекс).
|
|
31.12.2009, 00:44 | #10 |
Талантливый разгвоздяй
|
В AX 2009 индекс уже добавили, но согласен с Ivanhoe, что лучше повесить конфигурационный ключ.
|
|
Теги |
ax2009, intercompany, загрузка данных, производительность |
|
|