Я хочу обновить таблицу в oracle, которая имеет 155.750 строк. я пишу это:Как я могу улучшить этот скрипт обновления?
UPDATE Table1 R
SET R.TOTAL =
(SELECT SUM(T.TOTALS_TO_DATE)
FROM Table2 T
WHERE T.ID= R.ID
AND T.TYPE = 'type5');
Table1 имеет индекс на ID
Table2 имеет индексы на ID
и TYPE
. Это не отвечает. Как отредактировать это для быстрого запуска?
Если я напишу этот выбор, он будет работать быстро.
SELECT SUM(T.TOTALS_TO_DATE),R.ID
FROM Table2 T,Table1 R
WHERE T.ID= R.ID
AND T.TYPE = 'type5'
group by R.ID ;
Это работает, но я не понимаю, почему сценарий обновления занимает 3000 секунд.
Спасибо.
он работает быстро Я хочу, чтобы об этом работала правильно? спасибо за ответ – user1716182
это то же самое с обновлением? так почему это так быстро :) Мне нужно знать, что это так же, как и скрипт обновления, я исследую записи. И слияние statament только для оракула? спасибо – user1716182
@ user1716182 в статусе обновления подзапрос для вычисления суммы выполняется для строки earch (155.750 раз). В операторе MERGE подзапрос будет выполняться только один раз. – schurik