Исключение пространства Java Heap, с большим количеством данных, любое решение?
-
30-09-2019 - |
Вопрос
У меня есть большая проблема с памятью кучи Java, я пытаюсь перенести из базы данных Oracle 11G для доступа к файлу 2007
Это не проблема ниже 65 000 записей, теперь оттуда ... Сообщение оказывает исключение Java Heap, потребление памяти повышается более 600 м и использование процессора более 50% до превышения привязанности.
Насколько я знаю, ret.next () Не получайте все данные (более 50 Colums x +65000 ряд), но некоторые записи x Time я пытаюсь установить размер Fetch тоже, ничего не произошло
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 записей тоже)
Есть ли другие варианты, которые я мог бы попробовать? пожалуйста помоги
извините, а about мой английский
Это моя связь:
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);
Решение
Похоже, проблема в том, что вы используете прокручиваемую призывую, и это будет использовать больше памяти.