将大量数据插入Oracle DB

时间:2018-08-31 12:06:40

标签: oracle performance hibernate spring-data-jpa bulk-operations

我的设置-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
);

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

最好/最快的方法是如何将如此数量的记录插入Oracle DB?不幸的是,CSV不是一个选择。

1 个答案:

答案 0 :(得分:0)

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