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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.08.2009, 01:23   #1  
IKA is offline
IKA
Участник
 
359 / 65 (3) ++++
Регистрация: 15.03.2006
накладность changeCompany
Мне нужно в классе обрабатывать порядка 1000 записей в 15 компаниях каждую. Можно написать цикл по компаниям , в каждой компании обработать по 1000 записей - итого 15 переключений компаний. А можно каждую запись обрабатывать в 15 компаниях - 15000 переключений компаний. На сколько накладней второй вариант? Алгоритм проще, если каждую запись обрабатывать в 15 компаниях, но тк производимтельность важна, думаю вот, что надо все записи сначала в одной компании, потом во второй и тд. Посоветуйте, плз как лучше сделать.
Старый 13.08.2009, 08:23   #2  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
У меня при чтении файла, где строк около 30000, переключений происходит около 15000. Жутких тормозов замечено не было. Но это при чтении из файла, я там никак не могу отсортировать по компаниям (можно исп. временные таблицы, но не вижу смысла...), а вы же читаете из базы, значит логичней сделать цикл по компаниям.
Старый 13.08.2009, 10:54   #3  
IKA is offline
IKA
Участник
 
359 / 65 (3) ++++
Регистрация: 15.03.2006
то есть не тормозит?
Старый 13.08.2009, 11:41   #4  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
нет, катастрофы не наблюдается
Старый 13.08.2009, 12:00   #5  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Делал как-то импорт номенклатуры из Excel, несско тыщ записей импортировались менее чем за минуту, но когда была реализована "репликация" номенклатуры между несколькими компаниями (сделать общей InventTable, разнеся по компаниям лишь InventTableModule, было нельзя), и каждая импортируемая номенклатура стала пробрасываться еще в пяток компаний, скорость импорта упала на порядок.
При каждом использовании changecompany происходит два вызова \Classes\Application\setDefaultCompany - сначала на переключение в другую компанию, а затем на переключение в исходную. Кода там выполняется немало (это можно увидеть, включив мониторинг вызываемых методов), так что стоимость переключения между компаниями, если их происходят тысячи, становится весьма существенной. В качестве полумеры можно использовать явный вызов appl.setDefaultCompany() вместо changecompany (но надо потом не забыть вернуться в исходную компанию), а так, если хотите достичь нормальной скорости - переделывайте алгоритм, чтобы свести переключения между компаниями к минимуму.
Теги
changecompany, тормоза, компания

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
ChangeCompany Try...Catch Владимир Максимов DAX: Программирование 10 12.01.2009 17:19
ttsbegin ttscommit and changecompany() Volodymyr DAX: Программирование 9 29.08.2008 15:36
Проблема с поиском в InventTrans после changeCompany (DAX4) Raven Melancholic DAX: Программирование 11 13.03.2008 14:02
changeCompany() Ace of Database DAX: Программирование 1 16.08.2005 19:42
changecompany(conpeek(container)) Vadik DAX: Программирование 3 03.06.2003 16:59

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

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

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