Показать сообщение отдельно
Старый 10.06.2021, 10:51   #3  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,038 / 1629 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
Цитата:
Сообщение от Logger Посмотреть сообщение
еще в случае InventDim нередко помогает forceselectorder
Если запрос написан именно так и вы его смогли найти в коде, то да. Но обычно в системе они все делают через InventDimParm где фильтры будут заранее неизвестны, всегда там forceselectorder не поставишь. К примеру если выборка идет по серийному номеру или номеру партии, как правило выполнение должно начинаться с InventDim
Т.е. если такие проблемы начались можно как-то хинтовать, к примеру чем-то подобным
X++:
OPTION(TABLE HINT (B, INDEX(I_698DIMIDIDX)), TABLE HINT ( a, INDEX(I_174ITEMDIMIDX)), loop join)
2) Или найти этот запрос и добавить “forceliterals” - это наверное будет лучшее решение для мелких проектов
3)Ну или если есть бюджет вообще убрать join, как Microsoft сделала в D365FO( https://denistrunin.com/ax2012-inventsumfields )
За это сообщение автора поблагодарили: sukhanchik (20), Stitch_MS (10).