2014-10-16 3 views
0

Я бегу следующий код 40000 строкОбновление кода в Oracle занимает слишком много времени

update L02_A_AVOX_DATA 
set PWC_Exclusion_Flag = (select PWC_Exclusion_Flag from result 
where L02_A_AVOX_DATA.PWC_SEQ_AVOX = result.PWC_SEQ_AVOX); 

код выполняется в течение 20 минут. Не знаю, в чем ошибка. Может кто-нибудь помочь мне в этом

+0

Пожалуйста, обратите внимание на Объяснить план. – Nitish

+0

40 000 строк находятся в целевой таблице, или вы ожидаете обновления 40 000 строк? Сколько строк находится в 'result'? Вы уверены, что нет никаких незафиксированных транзакций против таблицы? –

ответ

0

Вы можете попробовать следующий запрос, возможно, что помогает:

MERGE INTO L02_A_AVOX_DATA n USING (
    SELECT PWC_Exclusion_Flag , PWC_SEQ_AVOX 
     FROM result 
) o ON (n.PWC_SEQ_AVOX = o.PWC_SEQ_AVOX) 
WHEN MATCHED THEN 
    UPDATE SET n.PWC_Exclusion_Flag = o.PWC_Exclusion_Flag; 
Смежные вопросы