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