我需要从DBF文件中读取数据并将其插入到Oracle Enterprise 12g / 13c环境中,以进行联接和从中提取报告。 一切工作正常,但是由于有成千上万个文件且文件大小在0.5到1TB之间,因此执行已花费了数小时才能完成。
平均速度为每秒7.000条记录。
我正在使用RecursiveTask打开许多与数据库的连接以并行执行插入。 Oracle在许多情况下都可以使用并行,但在这种情况下不能使用。 我正在使用自动提交OFF,并且该表没有索引。
此外,在批量执行插入之前,我正在使用parallelStream,如下所示:
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或任何其他解决方案的性能的帮助。我正在考虑在Hadoop上使用Hive