Показать сообщение отдельно
Старый 02.03.2009, 18:26   #167  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5788 (200) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от glibs Посмотреть сообщение
Бывает. Вообще да, накладные обычно большие. От полусотни строк.
По-моему, в приведенном плане запроса слишком много вложенных циклов и сортировок. Я бы вообще переписал соотв. методы, избавившись от exist join и наложив условие на RefReturnInvoiceTrans_W, чтобы сузить выборку:
X++:
select firstonly forceplaceholders RecId
    from    invoiceTrans
    where   invoiceTrans.InvoiceId                  == this.InvoiceId
        &&  invoiceTrans.InvoiceDate                == this.InvoiceDate
        &&  invoiceTrans.SalesId                    == this.SalesId
        &&  invoiceTrans.NumberSequenceGroup        == this.NumberSequenceGroup
        &&  invoiceTrans.RefReturnInvoiceTrans_W
    join    InvoiceId, InvoiceDate
    from    origTrans
    where   invoiceTrans.RefReturnInvoiceTrans_W    == origTrans.RecId;