java.lang.OutOfMemoryError: GC overhead limit exceeded при вычитывнии

Рейтинг: 0Ответов: 1Опубликовано: 24.05.2023
JdbcTemplate.query(запрос, new RowCallbackHandler() {
            public void processRow(@NonNull ResultSet resultSet) throws SQLException {

дает ошибку по памяти. есть способ вычитывать данные частями не все сразу?

Ответы

▲ 1Принят

Для того, чтобы избежать ошибки

"java.lang.OutOfMemoryError: GC overhead limit exceeded"

при чтении большого объема данных, можно использовать подход "чтение частями" (chunking). Для этого можно использовать методы из ResultSet, например setFetchSize(), а также использовать пагинацию при запросах к базе данных. Это позволит обрабатывать данные поблочно, по мере необходимости, и не загружать всю выборку в память сразу.