|
![]() |
#1 |
Axapta Retail User
|
Цитата:
Сообщение от mazzy
![]() Т.е. нужно делать примерно так
X++: // Header markups // SHiSHok.FRA_Optimize --> factureJour.clear(); while select RecId from markupTrans where markupTrans.TransRecId == this.RecId && markupTrans.TransTableId == this.TableId join RecId from factureTrans where factureTrans.MarkupRefRecId == markupTrans.RecId && factureTrans.Module == module && factureTrans.FactureLineType == FactureLineType_RU::Markup join * from factureJour index CustVendModuleIdx where factureJour.FactureId == factureTrans.FactureId && factureJour.Module == module && factureJour.CustVendInvoiceAccount == this.InvoiceAccount 1. Порядок полей должен по возможности совпадать с порядком полей в индексе (в противном случае SQL должен выполнить доп-работу) 2. Если у вас задействуется несколько индексов, то сначала укажите самый селективный (см. factureTrans) 3. Обратите внимание на проверку на модуль. Лучше сравните с константой, нежели поля таблиц. X++: where factureJour.FactureId == factureTrans.FactureId
&& factureJour.Module == module
&& factureJour.CustVendInvoiceAccount == this.InvoiceAccount Следует ли отсюда, что условие "&& factureJour.CustVendInvoiceAccount == this.InvoiceAccount" лишнее? |
|
Теги |
axapta, faq, запрос (query), производительность |
|
|