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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 24.11.2015, 17:06   #1  
Morpheus is offline
Morpheus
Участник
Аватар для Morpheus
Соотечественники
 
602 / 167 (7) ++++++
Регистрация: 30.03.2005
Адрес: Київ-København-Düsseldorf
AX 2012 R2 CU7 Исправление медленно закрывающейся формы сопосталений проводок по клиенту/поставщику, открытой из журнала ГК
При помощи Tracing утилиты обнаружил в методе CustVendPaymNote.buildPaymNote() очень медленно выполняющийся запрос:

X++:
while select crossCompany RecId from specTrans
        order by specTrans.RecId
        where specTrans.SpecCompany == _specCompany
           && specTrans.SpecTableId == _specTableId
           && specTrans.SpecRecId   == _specRecId
        join RecId from custVendTransOpen
            where custVendTransOpen.DataAreaId == specTrans.RefCompany
               && custVendTransOpen.TableId == specTrans.RefTableId
               && custVendTransOpen.RecId   == specTrans.RefRecId
        join TransDate, DocumentNum, Invoice, PaymId, Voucher from custVendTrans
            where custVendTrans.RecId == custVendTransOpen.RefRecId

Выполнил его рефакторинг:

X++:
while select crossCompany TransDate, DocumentNum, Invoice, PaymId, Voucher
            from custVendTrans
            join RecId
            from custVendTransOpen
           where custVendTransOpen.RefRecId == custVendTrans.RecId
            join RecId
            from specTrans
           where specTrans.RefCompany       == custVendTransOpen.DataAreaId
              && specTrans.RefTableId       == custVendTransOpen.TableId
              && specTrans.RefRecId         == custVendTransOpen.RecId
              && specTrans.SpecCompany      == _specCompany
              && specTrans.SpecTableId      == _specTableId
              && specTrans.SpecRecId        == _specRecId

И создал на таблице SpecTrans индекс:

X++:
#SpecTransIdx
      PROPERTIES
        Name                #SpecTransIdx
      ENDPROPERTIES
      
      INDEXFIELDS
        #SpecRecId
        #SpecTableId
        #SpecCompany
        #Partition
        #RecId
        #INCLUDEDCOLUMNPRESENT
        #RefRecId
        #INCLUDEDCOLUMNPRESENT
        #RefTableId
        #INCLUDEDCOLUMNPRESENT
        #RefCompany
        #INCLUDEDCOLUMNPRESENT
      ENDINDEXFIELDS

До рефакторинга запрос выполнялся 12 сек, после - меньше 1 сек. Пролем в работе бизнес-логики пока не обнаружил.
За это сообщение автора поблагодарили: Logger (3), plumbum (2).
Теги
ax2012r2, performance, slow, тормоза

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
kurthatlevik: SYNC for AX 2012 R2 CU7 Blog bot DAX Blogs 0 08.11.2013 21:11
emeadaxsupport: New and updated content is available for cumulative update 6 for Microsoft Dynamics AX 2012 R2 Blog bot DAX Blogs 0 27.06.2013 19:11
amer-ax: It was a great day! Blog bot DAX Blogs 3 29.12.2012 01:02
daxdilip: Whats New in Dynamics AX 2012 (A brief extract from the recently held Tech Conf.) Blog bot DAX Blogs 7 31.01.2011 12:35
Русская локализация Axapta 3 ? SlavaK DAX: Администрирование 59 01.07.2003 22:38

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

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

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