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 запрос стал нормально выполняться Единственное объяснение, приходящее на ум, что однажды запрос был построен с неоптимальным планом исполнения и этот план был закэширован. Вопрос: как сбросить кеш для ВСЕХ планов исполнения ? |
|
25.08.2004, 13:01 | #2 |
Модератор
|
Oracle или MSSQL?
блокировки при "зависании" запроса смотрели? план запроса смотрели? очень может быть, что forceliterals тут не при чем - запрос простой, пусть даже и по большой таблице, план "плавать" по идее не должен
__________________
-ТСЯ или -ТЬСЯ ? |
|
25.08.2004, 13:22 | #3 |
Модератор
|
Цитата:
Сообщение от Vadik
Oracle или MSSQL?
Цитата:
Обновление статистики командой update statistics InventTrans не помогло.
DBCC FREEPROCCACHE
__________________
-ТСЯ или -ТЬСЯ ? |
|