Java堆空间异常,具有大量数据,有什么解决方案吗?
-
30-09-2019 - |
题
我试图从Oracle数据库11G迁移到访问文件2007的Java Heap内存中有一个大问题
这不是低于65.000的记录的问题,现在从那里开始……抛弃了Java堆的异常,内存消耗量超过600m,而CPU的使用率超过50%,直到exeption。
据我所知,rset.next()没有获取所有数据(超过50个colums x +65000行),但是有些记录x我也尝试设置fetch size,什么也没发生
rset.setFetchSize(1000);
我已经删除了我的代码并显示一个输出,同样的错误
while (rset.next()) {
if (cont % 5000 == 0) {
System.out.println(cont + " proccesed and counting ...");
}
}
请不要给我使用-XM(S,X)512、1024等的答案...这可以解决,而不是在我的特定情况下(我尝试设置更高的XD,什么都没有,我没有发生在65.000记录中也有同样的例外)
我还可以尝试其他选项吗?请帮忙
对不起,我的英语
这是我的连接:
Class.forName("oracle.jdbc.driver.OracleDriver");
this.conn = DriverManager.getConnection("jdbc:oracle:thin:@" + getServer() + ":1521:orcl", getUser(), getPassword());
this.stmt = this.conn.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE, java.sql.ResultSet.CONCUR_UPDATABLE);
解决方案
看起来问题是您正在使用可滚动结果集,并且将使用更多内存。
不隶属于 StackOverflow