|
|
#1 |
|
Участник
|
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, тормоза |
|
|
|