DbUtils 发生OutOfMemoryError

enixyu 发布于 2013/03/04 18:06
阅读 338
收藏 0

使用DbUtils读取一个拥有很多列的表(大概150+个column,3w多行)的时候,出现OutOfMemoryError,请问有什么好的解决方法,只能按网上说的加大JVM的内存么?

可以在程序上做优化么?

(注:确实要读取这么多的列,因为项目是做数据迁移用的。从AS400导数据到MSSQL)

加载中
0
红薯
红薯

你数据那么多,再怎么优化也是那么多数据啊。

问题是你为什么要一次性读出那么多数据?

0
純白陰影
純白陰影
放事务里头,分批写,把压力转移到数据库
0
黑豆白
黑豆白
为啥要一次读这么多行呢。。。
0
loyal
loyal
SB,你就不能多分几次读啊.
enixyu
enixyu
请注意言辞,,我是来提问题的。。。而且我没有一次过读完,每读500条记录,就提交一次commit一次
0
loyal
loyal
再说,你只是倒数据库,那么多专业的工具不用,非要自己写...灵活性太低.
loyal
loyal
回复 @enixyu : 免费的估计没有,哈哈.
enixyu
enixyu
那你能介绍一下有什么AS400导数据到MSSQL的开源工具么?要免费的哦。。
0
猫哥-u
猫哥-u
批量操作数据最好读一批比如1000条,处理完,手工清空,然后接着读。。。。。。
0
enixyu
enixyu
我就是每读500条记录就提交一次事务的。不是一次读完。
0
朱轩
朱轩
清空 java很多持久层对象都滞留在内存 听说jvm不回收这部分对象不知道是不是真的
返回顶部
顶部