Мне нужно прочитать данные из файлов DBF и вставить их в среды Oracle Enterprise 12g / 13c, чтобы объединить и извлечь из них отчеты.Все работает правильно, но из-за тысяч файлов и их размеров от 0,5 до 1 ТБ на выполнение было потрачено несколько часов.
Средняя скорость составляет 7 000 записей в секунду.
IЯ использую RecursiveTask, чтобы открыть много соединений с базой данных, чтобы выполнить вставки параллельно.Oracle может использовать параллель во многих ситуациях, но не в этом случае.Я использую автоматическую фиксацию OFF, и таблица не имеет индекса.
Кроме того, я использую параллельный поток перед выполнением вставки в пакете, как показано ниже:
listInsert.parallelStream().forEach(line -> {
try {
statementDB.addBatch(line);
} catch (SQLException e) {
logger.error(line + "- ERRORCODE = " + e.getErrorCode() + " - " + e.getMessage());
}
});
statementDB.executeBatch();
statementDB.getConnection().commit();
Проблема в том, что!Мне нужно быстрее импортировать все данные!
Любая помощь для повышения производительности для INSERT INTO или любого другого решения.Я думаю использовать Hive на Hadoop