Мне поручено преобразовать огромную таблицу в пользовательский XML файл. Я буду использовать Java для этой работы.
Если я просто выдаю запрос "SELECT * FROM", он может вернуть огромное количество данных, которые в конечном итоге вызывают OOM. Интересно, есть ли способ, с помощью которого я могу обработать запись сразу после ее появления и удалить запись из памяти после этого во время процесса получения sql?
--- отредактировано 13.07.2009
Позвольте мне уточнить мой вопрос. У меня 1 сервер сервера и 1 сервер приложений. Когда я выдаю запрос выбора в приложении, данные будут перемещаться с сервера db на сервер приложений.
Я верю (исправьте меня, если я ошибаюсь) ResultSet должен будет дождаться получения всех записей в запросе. Даже если мы установили размер выборки как 4, для таблицы с 1000 записями, у нас все еще есть 1000 записей в кучевой памяти сервера приложений, правильно ли это? Размер Fetch влияет только на количество обратных рейсов с/на сервер db.
Мой вопрос в том, как начать обработку на этом 4 (или любом количестве) записей сразу после его поступления на сервер приложений и избавить его от освобождения памяти на сервере приложений?