将大量数据插入 Oracle DB

Insert huge data into Oracle DB

我的设置 - Oracle DB 12.1C,Spring 带 Hibernate 的应用程序。

table:

create table war
(
  id      int generated by default as identity                  not null constraint wars_pkey primary key,
  t1_id   int references t1 (id) on delete cascade              not null,
  t2_id   int references t2 (id) on delete cascade              not null,
  day     timestamp                                             not null,
  diff    int                                                   not null
);

我想在 table 中插入 10 000 条记录。使用 repository.saveAll(<data>) 需要 70 秒,使用 JpaTemplate.batchUpdate(<insert statements>) 需要 68 秒。当我无限制地创建新的临时 table 时,需要 65 秒。

什么是best/fastest方式,如何将这么多记录插入到Oracle DB中?不幸的是,CSV 不是一个选项。

我的解决方案是重新设计我们的模型 - 我们使用 int_array 来存储 diff -> 这比第一个解决方案快了将近 10 倍。