2 u012455098 u012455098 于 2017.11.15 14:53 提问

Oracle 表通过某字段查询出的数据按一定规则合并后存入新表,如何提高效率。用的是java。

A表
linkid oltid oltport basid basprot
1 001 oport1 42301 bport1
1 42301 oport2 002 bport2
2 ...
B表
linkid oltid oltport switchid switchport basid basport
1 001 oport1 42301 bport1 002 bport2
2 ...
A表的数据有两千多万条,以linkid去重后仍有近千万条,目前是用java去重后分页查询存入list,然后遍历list,用linkid去A表查数据,排序后多条组合成B表的一条,然后插入到B表。此方法效率太低,5分钟才插入1万条。

求各位大大,告知更为高效的操作方式,在此谢过!

2个回答

qq_38205371
qq_38205371   2017.11.15 21:40

不要每一条插入都去commit,你可以先生成sql脚本,再调用脚本一次性注入B表。

qyg_java
qyg_java 用存储过程写你的逻辑,然后存数据库。
6 天之前 回复
u012455098
u012455098 我试过批量提交,仍然很慢。主要是查询那每次都会去查询数据库,这耽搁了很多时间
6 天之前 回复
u012455098
u012455098   2017.11.16 11:17

已在论坛得以解决,地址:http://bbs.csdn.net/topics/392287082

Csdn user default icon
上传中...
上传图片
插入图片