将大量数据插入 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 倍。
我的设置 - 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 倍。