0

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

桌子:

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
);

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

什么是最好/最快的方法,如何将这么多的记录插入 Oracle DB?不幸的是,CSV 不是一种选择。

4

1 回答 1

0

我的解决方案是重新设计我们的模型 - 我们用于int_array存储diff-> 这几乎比第一个解决方案快 10 倍。

于 2018-10-09T10:03:21.890 回答