我试图从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);
有帮助吗?

解决方案

看起来问题是您正在使用可滚动结果集,并且将使用更多内存。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top