У меня есть один сценарий UNIX В этом мы создаем таблицу, индексируем и загружаем дату из файла в эту таблицу с помощью SQL Loader. И делать около 70 прямых обновлений (не используя для всех или массового сбора) в этой таблице.Настройка производительности - Вставка
Наконец-то мы вставляем эту новую таблицу данных в другую таблицу. В день он обрабатывает 500 000 записей. все эти обновления очень быстрые.
Во время вставки этих данных в другую таблицу занимает 20 минут. Как это можно улучшить?
- Нет проблем с вставкой, потому что на одном столе мы вставляем 500 000 ректоров из другого стола, который отлично работает. Вставка выполняется менее чем за минуту.
Вставить в таблицы() select() from tablex; Это занимает 20 минут для 500 000 записей Tablex - создано, загружено, 70 прямое обновление сделано в том же сценарии оболочки.
Проверено стоимость плана объяснения для отдельного выбора и со сценарием вставки оба они одинаковы.
Вставка в таблицы() select() из таблицы; Вышеуказанный оператор выполняется менее секунды.
- Я использовал параллельный намек. Стоимость снижается. И использование процессора равняется нулю.
- Должен ли я создать еще одну таблицу tablez, а затем загрузить данные из tablez в мою финальную таблицу?
- Требуется сбор статистики? Это ежедневная программа.
Шаг № 1 - прочитайте [ask]. – OldProgrammer