|  24.11.2015, 17:06 | #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, тормоза | 
|  | 
| 
 |