20.08.2004, 11:51 | #1 |
Участник
|
А есть ли в Axapta возможность очистить кэш запросов ???
Была такая ситуация (Axapta 2.5 sp4): При выполнении функции коррекции накладных расходов по закупке (Счет Фактура -> Накладные расходы -> Коррекция -> Вводим Сумму -> OK) клиент зависал. Трассировка в отладчике показала, что виснет запрос: <div class='XPPtop'>X++</div><div class='XPP'> [color=:blue]while[/color] [color=:blue]select[/color] [color=:blue]forUpdate[/color] inventTrans [color=:blue]where[/color] inventTrans.inventTransId [color=:blue]==[/color] vendInvoiceTrans.inventTransId && inventTrans.dateFinancial [color=:blue]==[/color] vendInvoiceTrans.invoiceDate && inventTrans.invoiceId [color=:blue]==[/color] vendInvoiceTrans.invoiceId && inventTrans.statusReceipt [color=:blue]==[/color] StatusReceipt::Purchased && inventTrans.statusIssue [color=:blue]==[/color] StatusIssue::None && inventTrans.packingSlipReturned [color=:blue]==[/color] 0 && ! inventAdjustAllocate.isAllocated()</div> в методе MarkupAdjustment.adjustInvoice() Обновление статистики командой update statistics InventTrans не помогло. После добавления в запрос хинта forceliterals запрос стал нормально выполняться Единственное объяснение, приходящее на ум, что однажды запрос был построен с неоптимальным планом исполнения и этот план был закэширован. Вопрос: как сбросить кеш для ВСЕХ планов исполнения ? |
|