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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.12.2009, 18:48   #25  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Сегодня у меня день подчищения хвостов.

Цитата:
Сообщение от AlexSD Посмотреть сообщение
Так что рекомендую на досуге все-таки заглянуть внутрь, "кто давно уже туда не смотрел". А то кругом неправда получается.
Заглянул. Такая же фигня - считает от начала времен.

Запрос тупо делается по LedgerTrans.
Причем запрос тупо создается, а не берется из AOT - следовательно любая оптимизация range'й может выполняться только программным кодом, а не администратором в АОТ
Нажмите на изображение для увеличения
Название: 1.PNG
Просмотров: 434
Размер:	21.7 Кб
ID:	5445

затем тупо отбираются все проводки с типом периода - обычный (1). Никаких начальных, никаких заключительных... ГФО по прежнему тупо не знают о таких типах проводок

А затем тупо делается цикл по всем проводкам (2).
Никаких промежуточных итогов, никакой оптимизации - тупо суммирует.
Даже никаких попыток сделать group by на сервере. Тупо выбрать все проводки, тупо просуммировать на AOS.
Нажмите на изображение для увеличения
Название: 2.PNG
Просмотров: 361
Размер:	57.7 Кб
ID:	5446

Хотелось бы также обратить внимание на то, как добавляются range.
сперва в query добавляется счет (по этому полю есть индекс), затем тип периода, признак коррекции, тип налога, тип движения, тип коррекции, аналитика... и только в самом конце дата.

во-первых, в LedgerTrans есть только один индекс, который содержит AccountNum - это ACDate.
во-вторых, оптимизатору запроса нужно серьезно постараться, чтобы догадаться использовать этот индекс среди кучи полей в range. Блин, ну хоть бы range с датой наверх поставили что ли?
в-третьих, даже этот индекс как правило предельно неселективный, поскольку даты для сальдо от начала времен до заданной даты. Поэтому оптимизатор с достаточно большой вероятностью выберет Table scan (и это заложено на этапе проектирования!!!)

А что бесит больше всего - никаких попыток сделать группировки и отдать хоть часть работы на SQL...

Не говоря уже о попытках кэширования, предсказывания, оптимизации (так если мы знаем сальдо конечное и сальдо начальное, то можем не запрашивать оборот из базы. Или сделан выборка для счета, то не делать еще раз такую же выборку для расчета итогового счета...)

=====================
Если интересно, то сравните с
LedgerBalanceSheetCol_CurMST.buildQuery
LedgerBalanceSheetCol_CurMST.sumUpTrans

Где четко начальные берут из промежуточных итогов, текущие берут из LedgerTrans.
Но обратите внимание, помимо того, что там выбираются небольшие периоды, там в запрос вставлен group by и AOS самостоятельно занимается суммированием очень небольшого количества записей. В основном, всю работу выполняет SQL.

Или взять тот же тупой LedgerBalanceCur_Current
Хоть и он на промежуточные итоги плевать хотел, но хотя бы группировку делает на стороне SQL и пытается хоть какой-то кэш сделать...

=====================
В общем, AlexSD, при всем моем уважении - принципиально в RRG нихрена и ничего не поменялось.
__________________
полезное на axForum, github, vk, coub.
Теги
бухгалтерский учет

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
emeadaxsupport: List of fixes that improve performance of certain features in Dynamics AX 2009 Blog bot DAX Blogs 0 13.10.2009 19:06
gatesasbait: Dynamics AX 2009 SSRS and SSAS Integration Tips Blog bot DAX Blogs 3 09.07.2009 13:07
Dynamics AX: Managing Your Supply Chain Using Microsoft Dynamics AX 2009 - Book Review Blog bot DAX Blogs 0 31.03.2009 23:06
axStart: Microsoft Dynamics AX 2009 Hot Topics Web Seminar Series Blog bot DAX Blogs 0 06.08.2008 12:05
Arijit Basu: AX 2009 - Quick Overview Blog bot DAX Blogs 4 19.05.2008 14:47
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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