|
|
#11 |
|
Moderator
|
Когда мы пользуемся стандартными классами inventSumDate*, то алгоритм выглядит примерно так:
1. Строим запрос по inventSum+inventDim, группируя по нужному сочетанию аналитик 2. В цикле бежим по результату запроса, вызывая класс inventSumDate* для каждого найденного сочетания аналитик. При этом внутри этого класса, система порождает несколько отдельных запросов к inventSum, inventtrans+inventTransPosting, inventSettlement. При этом каждый запрос, естественно, вызывает достаточно приличные накладные расходы на разбор сервером, построение плана запроса, чтение нескольких страниц из БД и так далее. InventSumDateEngine работает по другому: 1. Создает запрос по всем номенклатурам и аналитикам в inventSum+inventDim, пишет аналитики и суммы с количествами в inventSumDateTrans 2.Создает аналогичный запрос по inventTrans+inventTransPosting для физических разносок за период, пишет результаты в inventSumDateTrans 3. Аналогично - для финансовых разносок в inventTransPosting за период. 4. Создает запрос для всех коррекций в inventSettlement за период. 5. Группирует и суммирует уже созданные записи в inventSumDateTrans Потом ты в своем собственном коде должен пробежаться по inventSumDateTrans, напечатать и удалить Да - там еще есть некое поле с номером сессии или чем-то подобным, чтобы несколько пользователей друг другу не мешали. Вообще - с этим механизмом мне не все понятно. Я, например, так и не понял почему они физические разноски мешают с финансовыми коррекциями. Ну да ладно. А повышение производительности происходит из за того что ты много мелких запросов по каждой номенклатуре и складской аналитике заменяешь на несколько крупных, на которых лучше отыгрывает мощный сервер БД.Чего сделано в Fast Inventory Reports - не знаю, сам не щупал. Последний раз редактировалось fed; 25.05.2008 в 19:47. |
|
|
|
| За это сообщение автора поблагодарили: Logger (5), pedrozzz (1). | |
| Теги |
| inventdim, inventsum, производительность, складские отчеты |
|
|
Похожие темы
|
||||
| Тема | Ответов | |||
| dynamicsmatters: Performance and InventDim | 52 | |||
| dynamicsmatters: Dynamics AX Base Data Model Part II | 0 | |||
|