大量のデータによる Java ヒープ スペース例外、解決策はありますか?

StackOverflow https://stackoverflow.com/questions/4349347

質問

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 を使用していて、より多くのメモリを使用することのようです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top