У меня есть таблица с 58 миллионами записей с 30 столбцами, в которых я хочу обновить один столбец, сопоставляя другую таблицу с 45 миллионами записей с двумя столбцами.Обновить запрос для одного столбца между двумя огромными таблицами
MERGE INTO /*+ PARALLEL(tbl_temp) */ tbl_temp tcm
USING (SELECT frn.id, frn.risk FROM temp_new frn) a
ON (a.id = tcm.fi_id) WHEN MATCHED THEN UPDATE
SET tcm.risk_label=a.risk;
это запрос, который я пробовал, но он занимает более 12 часов. Я попытался с пакетным мудрым обновлением также с размером партии 10000, но с той же проблемой. Есть ли другой способ повысить производительность запроса?
Подсказки идут после первого ключевого слова ('merge',' insert', 'select' и т. Д.). –
Обычно, когда вы делаете 'MERGE', но только с предложением' WHEN MATCHED THEN UPDATE', тогда достаточно простого 'UPDATE'. У вас есть индексы на 'ID' и' FI_ID'? Разделена ли таблица 'TBL_TEMP'? Если нет, то подсказка PARALLEL не имеет большого смысла. –
@WernfriedDomscheit, Да, у нас есть индексы по указанным столбцам, а таблица не разделена. – TSKSwamy