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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 22.02.2007, 15:00   #1  
laptev is offline
laptev
Участник
 
26 / 10 (1) +
Регистрация: 03.05.2005
Цитата:
Сообщение от mazzy Посмотреть сообщение
"Работал" или давал оценку?
Оценку алгоритм дает исходя из максимального количества строк, которое вы задали в диалоге.
А не на основании фактического количества.

Странно. А длинные запросы у себя отслеживали?
Да, время выполнения запросов (а также всех строк кода) отслеживали с помощью Profiler'a.
Запросы выполняются достаточно быстро (в среднем ~ 20 мс).
НО!
В стандартном механизме создания строк журнала инвентаризации для расчёта количества inventJournalTrans.inventOnHand используется класс InventSumDate (а это уже не один запрос, а 10-20).
Плюс на подготовку и запись строки 150мс.
Итого в среднем на строку 500мс.
Если 30 000 строк: 30 000 * 0,5 (с) / 3600 (с/час) = 2,8 часа. Это долго.
Что тут можно оптимизировать? Наверное, только модифицировать алгоритм... В том числе и алгоритм записи строк.
Старый 22.02.2007, 15:08   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от laptev Посмотреть сообщение
НО!
В стандартном механизме создания строк журнала инвентаризации для расчёта количества inventJournalTrans.inventOnHand используется класс InventSumDate (а это уже не один запрос, а 10-20).
Что-то вы путаете...
Пока читайте здесь http://axapta.mazzy.ru/lib/inventsumdate/

Пошел считать количество запросов.
__________________
полезное на axForum, github, vk, coub.
Старый 22.02.2007, 15:33   #3  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от laptev Посмотреть сообщение
В стандартном механизме создания строк журнала инвентаризации для расчёта количества inventJournalTrans.inventOnHand используется класс InventSumDate (а это уже не один запрос, а 10-20).
Во-первых, инициализация происходит в методе класса
InventCountCreate_Base.createInventJournalTrans

Во-вторых, вызывается InventSumDatePhysicalDim:nHandQty(...)

В-третьих, вызывается не 10-20 запросов, а 5
1. inventsum
2. для разнесенных финансово (для вычитания из inventSum)
3. для разнесенных физически (для вычитания из inventSum)
4. для скомплектованных (для вычитания из inventSum)
5. для зарегистрированных (для вычитания из inventSum)

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

Кстати, если у вас не используется комплектация/регистрация/физические разноски, то запросы по ним должны выполняться очень быстро, поскольку должны возвращать пустой recordset. Если же вы используете, то 2,3,4,5 запросы при правильной работе должны возвращать очень небольшую выборку...

Скорее всего, тормоза в стандартном запросе связаны не с количеством запросов,
а с наличием index hint'ов. Но index hint и вообще index'ы надо настраивать для всей системы.

В общем, не убедили.
Скорее всего, вы просто не ухаживаете за вашей Аксаптой.
Скорее всего, при переписывании вы сильно упрощаете и обрезаете свой функционал (в дальнейшем вам будет очень сложно его включить обратно)
__________________
полезное на axForum, github, vk, coub.
Старый 22.02.2007, 15:39   #4  
laptev is offline
laptev
Участник
 
26 / 10 (1) +
Регистрация: 03.05.2005
Цитата:
Сообщение от mazzy Посмотреть сообщение
Скорее всего, тормоза в стандартном запросе связаны не с количеством запросов,
а с наличием index hint'ов. Но index hint и вообще index'ы надо настраивать для всей системы.
Очень может быть. До index hint'ов руки ещё не дошли. Будем работать!
Спасибо за подробные ответы.
 

Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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