Производительность Oracle Insert - PullRequest
0 голосов
/ 21 октября 2018

Я вставляю данные из внешней таблицы в свою таблицу, которая разбита на диапазоны и имеет два локальных индекса.

Мой случай,

Я должен вставить записи менее чем за 60 секунд для каждого плоского файла, потому что приходит новый.

Плоский файл состоит из +5 M записей и 2 ГБ.(объем: всего 5 миллиардов записей в день). Кроме того, я выполняю некоторые операции сортировки перед вставкой во внешнюю таблицу и выбираю.

Моя среда работает на версии Oracle ExaData X-5 12.2.

Существует много процессовделать вставку в одну и ту же таблицу одновременно, поэтому я не могу использовать подсказку добавления.Я могу использовать параллельные подсказки и подсказки.

У меня есть .exe, который управляет всем этим процессом.Он получает плоские файлы из источника, затем объединяет их, если есть еще один плоский файл, затем перемещает объединенный файл в истинный каталог для внешней таблицы и вызывает процедуру для вставки данных из внешней таблицы в мою таблицу.Наконец, изменяется плоский файл на следующий.

Существует один .exe для каждого отдельного плоского файла.

Вся операция выбора занимает 35-40 секунд из внешней таблицы, но вставка занимает слишком много времени 50-60 секунд.

Можете ли вы дать мне несколько полезных советов?

...