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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 03.11.2011, 10:19   #1  
SolNik is offline
SolNik
Участник
 
58 / 36 (2) +++
Регистрация: 22.10.2003
Производительность запроса Оборотная ведомость по складу
В DAX2009 (у нас RU5) появилась новая версия оборотки по складу (Управление запасами/ Запросы/ Проводки).
Кто нибудь использует ее в своих проектах? Нет претензий к производительности?
На нашей базе с 30000 номенклатур, на месяц назад от текущего отчет строится около 48 часов
По идее ускорить построение отчета должен запуск периодической операции "Управление запасами/ Периодические операции/ Запасы в наличии на указанную дату". Но как я понял из кода, даже при наличии обсчитанных данных отчет все равно лезет в лоб, в складские проводки.
Какая методика предварительного обсчета данных? Их нужно обсчитывать на каждую дату в рамках периода закрытия или только на дату самого закрытия?
Буду благодарен за любую информацию об опыте использования этого отчета.
Старый 03.11.2011, 10:28   #2  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2156 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Аналогично, строится очень долго. Пока спасает OLAP, но хотелось бы разобраться со стандартными функциями.
__________________
Ivanhoe as is..
За это сообщение автора поблагодарили: SolNik (1).
Старый 03.11.2011, 10:36   #3  
SolNik is offline
SolNik
Участник
 
58 / 36 (2) +++
Регистрация: 22.10.2003
Просто мы уже запостили issue в поддержку MS на эту тему. Но в MS нам ответили, что этот отчет и так уже очень сильно оптимизирован и для дальнейших работ по его оптимизации нужны очень веские доводы.
В отчете кстати есть еще ошибка - он неправильно выдает остаток на конец периода, в случае если в периоде были закупки, по которым отборочная накладная была обработана позже финансовой. На эту тему тоже отправили запрос в поддержку, он сейчас в работе.
Старый 03.11.2011, 11:03   #4  
gene is offline
gene
Microsoft Dynamics
Сотрудники Microsoft Dynamics
 
76 / 93 (4) ++++
Регистрация: 21.07.2006
Адрес: Москва
Цитата:
Сообщение от SolNik Посмотреть сообщение
По идее ускорить построение отчета должен запуск периодической операции "Управление запасами/ Периодические операции/ Запасы в наличии на указанную дату". Но как я понял из кода, даже при наличии обсчитанных данных отчет все равно лезет в лоб, в складские проводки.
Какая методика предварительного обсчета данных? Их нужно обсчитывать на каждую дату в рамках периода закрытия или только на дату самого закрытия?
В документации на данный запрос написано:

Цитата:
Для оптимизации производительности запроса Оборотная ведомость по складу используются предварительно рассчитанные данные – запасы на дату закрытия склада. Используется дата закрытия склада, поскольку запасы, зафиксированные закрытием склада, не могут быть уже изменены задним числом. При выполнении запроса система определяет, может ли запрос быть (частично) выполнен с использованием предварительно рассчитанных запасов, и при необходимости дополняет указанные данные расчетом на основании складских проводок.
Естественно, запрос вынужден лезть в складские проводки в тех случаях, когда период запроса не точно совпадает с периодами, на которые есть эти предварительно рассчитанные данные.
Цитата:

Дата для расчета запасов в наличии
Дата закрытия склада, для которого необходимо выполнить расчет запасов. По умолчанию определяется как дата первого по времени закрытия склада, для которого расчет запасов еще не выполнялся
То есть процедура запускается только на даты операций закрытия склада.
За это сообщение автора поблагодарили: SolNik (1).
Старый 03.11.2011, 15:31   #5  
SolNik is offline
SolNik
Участник
 
58 / 36 (2) +++
Регистрация: 22.10.2003
Цитата:
Сообщение от gene Посмотреть сообщение
В документации на данный запрос написано:
Спасибо за ответ. А не подскажете, где взять эту чудо-документацию? В стандартных мануалах по российскому функционалу Управления запасами я этого не нашел

Цитата:
Сообщение от gene Посмотреть сообщение
Естественно, запрос вынужден лезть в складские проводки в тех случаях, когда период запроса не точно совпадает с периодами, на которые есть эти предварительно рассчитанные данные.

То есть процедура запускается только на даты операций закрытия склада.
Странно, мы пробовали строить отчет за период [Дата предыдущего закрытия+1, Дата текущего закрытия], но особой прибавки в скорости не заметили...и при этом InventTrans все равно активно лопатился...

Я вот не понимаю, если уж решили использовать предрасчитанные данные по закрытому периоду, почему не пошли до конца?...сделали бы аналог LedgerBalancesDimTrans и строили бы отчет только по нему...
Старый 03.11.2011, 16:52   #6  
gene is offline
gene
Microsoft Dynamics
Сотрудники Microsoft Dynamics
 
76 / 93 (4) ++++
Регистрация: 21.07.2006
Адрес: Москва
Цитата:
Сообщение от SolNik Посмотреть сообщение
Спасибо за ответ. А не подскажете, где взять эту чудо-документацию? В стандартных мануалах по российскому функционалу Управления запасами я этого не нашел
На фичи, выходящие в ролапах, документация делается в виде What's new, распространяемых вместе с ролапом. Эта документация выложена здесь по ссылке, которую выше дал Ivanhoe, а также на сайте msbpartners.ru (насколько я понимаю, доступно только партнерам). Кстати, выдержки были из доки на РУ-5, где запрос был немного модифицирован по сравнению с РУ-3, а дока была соответствующим образом поправлена.
Цитата:
Сообщение от SolNik Посмотреть сообщение
Странно, мы пробовали строить отчет за период [Дата предыдущего закрытия+1, Дата текущего закрытия], но особой прибавки в скорости не заметили...и при этом InventTrans все равно активно лопатился...

Я вот не понимаю, если уж решили использовать предрасчитанные данные по закрытому периоду, почему не пошли до конца?...сделали бы аналог LedgerBalancesDimTrans и строили бы отчет только по нему...
Почему не заметили прибавки, нужно разбираться... Как и с тем, почему лезет в складские проводки.
Насчет того, почему реализовано именно так: хотя бы потому, что процедура предрасчета оборотов или остатков на каждый день вместо одного дня закрытия периода и работала бы соответствующим образом дольше, и данных порождала соответствующим образом больше, с неочевидным выигрышем в производительности относительно текущей реализации. Вообще, при разработке данного запроса анализировались различные подходы, но есть определенные ограничения, которым мы должны следовать, и поэтому был выбран тот подход, который был выбран.
За это сообщение автора поблагодарили: kALVINS (2).
Старый 30.10.2012, 13:56   #7  
Mikky is offline
Mikky
Участник
 
16 / 10 (1) +
Регистрация: 22.07.2008
Цитата:
Сообщение от SolNik Посмотреть сообщение
Странно, мы пробовали строить отчет за период [Дата предыдущего закрытия+1, Дата текущего закрытия], но особой прибавки в скорости не заметили...и при этом InventTrans все равно активно лопатился...
Цитата:
Сообщение от gene Посмотреть сообщение
Почему не заметили прибавки, нужно разбираться... Как и с тем, почему лезет в складские проводки.
"Лезет", потому что в периодической операции расчета запасов в наличии на указанную дату не учитываются складские проводки в статусах расхода == Deducted (Отпущено) и прихода == Received (Получено), т.е. проводки, по которым разнесены отборочные накладные. Расчет ведется только по проводкам, соответствующим финансовым накладным. При запуске же запроса Оборотная ведомость по складу статусы отборочных накладных учитываются и происходит расчет остатка по ним на дату и оборота по ним за период. Отсюда и запросы к InventTrans. Все это прослеживается при трассировке в методе calcItem() класса InventSumDateFinancialCalc_RU.
Может попробовать перенести расчет по этим статусам в периодическую операцию расчета запасов на дату?
Старый 03.11.2011, 14:08   #8  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2156 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
В моем случае проблема не 48ми часов, но все же.

Есть рабочий сервер, который нормально обслуживает порядка 100 человек (закупки, перемещения, продажи). Есть начальное сальдо, заведенное как 11 000 строк журналом Проводка. Есть закрытие склада на эту же дату.

На ночь (нет активности) запускаем расчет остатков (пара часов), запускаем сам запрос на дату закрытия - еще пара часов. Мне кажется это ненормально.
__________________
Ivanhoe as is..

Последний раз редактировалось Ivanhoe; 03.11.2011 в 16:00.
Старый 03.11.2011, 15:41   #9  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2156 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Выше были выдержки из описания RU3, скачать можно тут.
__________________
Ivanhoe as is..
За это сообщение автора поблагодарили: gene (1).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
оборотная-ведомость по складу Blondinka_N DAX: Функционал 1 06.04.2009 18:30
Оборотная ведомость по складу Morpheus DAX: Функционал 15 08.10.2007 17:58
Оборотная ведомость по складу Morpheus DAX: Функционал 5 25.09.2007 17:12
Отчёт Упр. Запасами \ Отчёты \ Статус \ Оборотная ведомость по складу Alks DAX: Прочие вопросы 23 01.07.2005 18:29
Оборотная ведомость по складу twilight DAX: Функционал 8 05.04.2005 12:47

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

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

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