大量のデータによる Java ヒープ スペース例外、解決策はありますか?
-
30-09-2019 - |
質問
Java Heap Memoryの大きな問題があります私はOracle Database11gから移行してファイル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);
解決
問題は、スクロール可能な ResultSet を使用していて、より多くのメモリを使用することのようです。
所属していません StackOverflow