Java Heap Space Exception,数据量大,有什么解决办法吗?

标签 java oracle ms-access heap-memory

Java 堆内存有一个大问题 我正在尝试从 oracle 数据库 11g 迁移到 Access 文件 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 条记录时也遇到了同样的异常)

还有其他我可以尝试的选择吗??, 我想改变一些驱动程序配置或字符串连接?? 请帮忙

抱歉我的英语不好

这是我的连接:

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);

最佳答案

看起来问题在于您使用的是可滚动结果集,这会占用更多内存。

关于Java Heap Space Exception,数据量大,有什么解决办法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4349347/

相关文章:

database - 如何检查Oracle实例是使用pfile还是spfile启动的?

windows - 适用于 Windows 64 位的 Oracle 11g 快捷版?

sql - 如何定义附加查询 Microsoft Access 的目标

sql - MS Access 在所有列中循环联合查询?

java - 检查 pdf 提取文本质量的快速且无监督的方法是什么?

java - 创建一个 "Lock"类(它扩展了 Object 并且什么都不做)有什么好处?

java - 测试位置/字符是否在 HTML 标记内

java - 将数据插入数据库(mongodb)

sql - Oracle错误 "inconsistent datatypes: expected CHAR got LONG"

vba - "rs.close"和/或 "Set rs = Nothing"