JDBC 批量插入 oracle 很慢?

2020-12-19 17:36:00 +08:00
 xiaofan2

我们现在有两个库,一个 mysql,一个 oracle,都使用 jdbc NamedParameterJdbcTemplate.batchUpdate 插入,但是 mysql 插入 5W 条数据 3S 左右,Oracle 要 300S,不知道是哪个地方有问题?有没有大佬知道

1632 次点击
所在节点    程序员
3 条回复
billlee
2020-12-19 21:38:38 +08:00
166/s, 盲猜是事务提交的问题?
heavyrainn
2020-12-21 13:46:56 +08:00
oracle 慢的话,按自己的经验,有两个点可以注意一下(针对 11g 版本)。一个是,oracle 在进行 batch 的时候记得先手动关闭 autoCommit,不然 batch 无效;另外一个是,手动调整一下 fetchsize,oracle 默认的 fetchsize 是 10,很小
xiaofan2
2020-12-21 14:33:37 +08:00
@billlee
@heavyrainn 我测试了一下 感觉是事务的问题 然后还有个操作是在 insert 语句里面添加上 /*+APPEND_VALUES(t)*/ 这个语句 虽然我也不知道是咋起作用的 但是还真是有作用...

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/737070

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX