AXForum  
Вернуться   AXForum > Прочие обсуждения > Курилка
DAX
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.02.2017, 19:56   #1  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5788 (200) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
AX 2012 R3 \Classes\RetailTransactionServiceOrders\getCustomerOrder
AX 2012 R2 \Classes\RetailTransactionService\getCustomerOrder
X++:
select InventTransOrigin from inventTransOriginSalesLine
where inventTransOriginSalesLine.SalesLineInventTransId == salesLine.InventTransId;
Люди тестировали код, как обычно, на своей 10-гиговой игрушечной базе, и им было невдомек, что в кластерном индексе на первом месте стоит поле SalesLineDataAreaId - в итоге этот чудо запрос ни разу не попадает в индекс и на нормальных объемах данных приводит к зависанию на минуты. Из-за этого AX POS при попытке поднять заказ на продажу через RTS отваливается по таймауту. Если исправить на нормальный вызов InventTransOriginSalesLine::findInventTransOriginId(), то все отрабатывает за секунды.
За это сообщение автора поблагодарили: kashperuk (5).
Старый 10.02.2017, 19:58   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от gl00mie Посмотреть сообщение
...приводит к зависанию на минуты...
ты лучше посмотри как поиск по номеру чека происходит...
Старый 17.02.2017, 15:20   #3  
SRF is offline
SRF
Участник
MCBMSS
Axapta Retail User
 
365 / 542 (19) +++++++
Регистрация: 08.08.2007
Записей в блоге: 1
Табличка TMSRouteSegmentLoadLine
AX 2012 R3, к словам об игрушечной базе Отсутствие индекса и непонятный cross join к WHSLoadLine.
Миниатюры
Нажмите на изображение для увеличения
Название: TMSRouteSegmentLoadLine.png
Просмотров: 395
Размер:	72.9 Кб
ID:	11215  
__________________
Sergey Nefedov

Последний раз редактировалось SRF; 17.02.2017 в 15:57.
Старый 17.02.2017, 18:09   #4  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от SRF Посмотреть сообщение
AX 2012 R3, к словам об игрушечной базе Отсутствие индекса и непонятный cross join к WHSLoadLine.
Сергей, вы у себя это починили? Или это теоретическая находка?
Старый 17.02.2017, 18:23   #5  
SRF is offline
SRF
Участник
MCBMSS
Axapta Retail User
 
365 / 542 (19) +++++++
Регистрация: 08.08.2007
Записей в блоге: 1
Починили, добавили индекс по LoadLineRecId и код слегка поправили, не знаю уж какая в итоге была задумка начального запроса, но правили вот так:

X++:
    select count(RecId) from segmentLine
        //join line
        where segmentLine.LoadLineRecId == loadLine.RecId;
__________________
Sergey Nefedov
За это сообщение автора поблагодарили: kashperuk (5).
Теги
axapta, cil, d365fo, guid, rasset, uuid, uuidv7, баг

 


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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 23:20.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.