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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.12.2009, 12:37   #1  
nano3 is offline
nano3
Участник
 
57 / 24 (1) +++
Регистрация: 21.03.2007
Загрузка строк 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  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
инструменты те же самые:
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-классах и/или в бизнес-коннекторе.
__________________
полезное на axForum, github, vk, coub.
За это сообщение автора поблагодарили: nano3 (1).
Старый 30.12.2009, 12:55   #3  
Zabr is offline
Zabr
Участник
Axapta Retail User
 
1,202 / 345 (14) ++++++
Регистрация: 26.06.2002
Адрес: Москва
Цитата:
Сообщение от nano3 Посмотреть сообщение
DAX 2009
Загружаю данные из файла в purchase order.
Заранее спасибо за любую помощь.
Файл Excel ? Попробуйте вместо XLS делать CSV и загружать посредством AsciiIO.read() - по крайней мере, на этапе чтения файла сильно съэкономите (раз в 10 точно).
Старый 30.12.2009, 12:57   #4  
nano3 is offline
nano3
Участник
 
57 / 24 (1) +++
Регистрация: 21.03.2007
Спасибо за ответ.
Версия Международная
intercompany в одной и той же базе
Файл CVS
Старый 30.12.2009, 13:22   #5  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
тогда парсер-трейсер в руки и вперед
__________________
полезное на axForum, github, vk, coub.
Старый 30.12.2009, 13:30   #6  
Zabr is offline
Zabr
Участник
Axapta Retail User
 
1,202 / 345 (14) ++++++
Регистрация: 26.06.2002
Адрес: Москва
Посмотрите еще вот что. Есть один баг в Ах 4.0, возможно он сохранился и в Ах2009 (у меня её нет, не могу проверить). Суть в том, что при создании записей Purchline работает табличный метод Purchline.TaxByLine(), и в нем такой запрос:
X++:
select sum(TaxAmount) from taxTrans where taxTrans.InventTransId == this.InventTransId;
- но при этом у таблицы taxtrans нет индекса по полю InventTransId ! В нашей базе исправление этого бага дало ускорение формирования строк Purchline в 4-5 раз. Проверьте этот момент в Ах2009.

Последний раз редактировалось Zabr; 30.12.2009 в 14:05.
За это сообщение автора поблагодарили: AlexArh (1), nano3 (1).
Старый 30.12.2009, 13:39   #7  
Zabr is offline
Zabr
Участник
Axapta Retail User
 
1,202 / 345 (14) ++++++
Регистрация: 26.06.2002
Адрес: Москва
Еще: у вас по клиентам не включен ли контроль кредитного лимита ? Тоже может тормозить, поскольку проверяется при создании каждой строчки SalesLine, но тут уж не знаю чем помочь, если контроль реально нужен.
Старый 30.12.2009, 14:40   #8  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2156 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Цитата:
Сообщение от Zabr Посмотреть сообщение
Посмотрите еще вот что. Есть один баг в Ах 4.0, возможно он сохранился и в Ах2009 (у меня её нет, не могу проверить). Суть в том, что при создании записей Purchline работает табличный метод Purchline.TaxByLine(), и в нем такой запрос:
X++:
select sum(TaxAmount) from taxTrans where taxTrans.InventTransId == this.InventTransId;
- но при этом у таблицы taxtrans нет индекса по полю InventTransId ! В нашей базе исправление этого бага дало ускорение формирования строк Purchline в 4-5 раз. Проверьте этот момент в Ах2009.
В 2009 SP1 RU3 этот метод, судя по ссылкам, вызывается только для того, чтобы проверить налог 1099, который у нас не нужен. По идее можно просто закоментить кусочек или поставить проверку на конфиг. ключ CRSEUnitedStates.
__________________
Ivanhoe as is..
Старый 30.12.2009, 16:22   #9  
Zabr is offline
Zabr
Участник
Axapta Retail User
 
1,202 / 345 (14) ++++++
Регистрация: 26.06.2002
Адрес: Москва
Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
В 2009 SP1 RU3 этот метод, судя по ссылкам, вызывается только для того, чтобы проверить налог 1099, который у нас не нужен. По идее можно просто закоментить кусочек или поставить проверку на конфиг. ключ CRSEUnitedStates.
Именно так, в Ax 4.0 он также только проверяет неиспользуемый налог 1099, и я этот код именно просто закомментировал. Получается, в Ax2009 можно сделать то же самое и это даст заметное ускорение (если только в Ax2009 так и не сделали нужный индекс).
Старый 31.12.2009, 00:44   #10  
Kabardian is offline
Kabardian
Талантливый разгвоздяй
Аватар для Kabardian
 
424 / 338 (12) ++++++
Регистрация: 14.12.2008
Адрес: Москва
Записей в блоге: 14
Цитата:
Сообщение от Zabr Посмотреть сообщение
Именно так, в Ax 4.0 он также только проверяет неиспользуемый налог 1099, и я этот код именно просто закомментировал. Получается, в Ax2009 можно сделать то же самое и это даст заметное ускорение (если только в Ax2009 так и не сделали нужный индекс).
В AX 2009 индекс уже добавили, но согласен с Ivanhoe, что лучше повесить конфигурационный ключ.
Теги
ax2009, intercompany, загрузка данных, производительность

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
dynamicsaxtraining: Create purchase order Blog bot DAX Blogs 0 14.12.2009 14:05
dynamicsaxtraining: Purchase business process Blog bot DAX Blogs 0 07.12.2009 19:05
Работа с Sales Order and Purchase Order... DmitrySincerity DAX: Функционал 8 01.12.2008 21:44
purchase order newbie DAX in English 6 31.03.2008 14:37
Говорят вышел SP2 для Axapta 3. Кто нибуть что знает на эту тему? soin DAX: Прочие вопросы 10 13.10.2003 10:43

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

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

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