我对java堆内存有一个小问题 我正在尝试从oracle数据库11g迁移到访问文件2007
这不是65.000记录以下的问题,现在从那里...... 该应用程序抛出java堆异常,内存消耗超过600m,CPU使用率超过50%直到执行。
据我所知rset.next()没有得到所有数据(超过50列x +65000行),但有些记录x时间 我也尝试设置获取大小,没有发生任何事情
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记录也得到了同样的例外)
我可以尝试其他选择吗? meaby更改一些驱动程序配置或字符串连接? 请帮忙
抱歉我的英语
这是我的联系:
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);
答案 0 :(得分:2)
看起来问题是您正在使用Scrollable ResultSet并且将使用更多内存。