powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Работа с большими данными в J2EE
7 сообщений из 7, страница 1 из 1
Работа с большими данными в J2EE
    #33135379
white@
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую.

Есть проект на J2EE, работает с данными через Hibernate, массив данных сильно растет, на данный момент находится на уровне 9,000 записей. БД MySQL 4. При попытке прочитать все на страницу пока работает, однако часто броузеры могут отпадать по таймауту. При кол-ве записей порядка 20,000 Hibernate падает с out of memory. Хотя есть планы роста записей свыше 100,000.

При выводе данных постранично, проблем как таковых нет. Возникают проблемы когда надо работать со всем объемом данных. НАпример, вывести весь список в XML, PDF или куда еще.

Посоветуйте что почитать из литературы по работе с такими проектыми, как их проектировать и писать. Буду очень благодарен если поделитесь своим опытом работы с крупными данными.
...
Рейтинг: 0 / 0
Работа с большими данными в J2EE
    #33135477
Alexey Turn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может я чего-то не понимаю... но почему бы не воспользоваться теми же средствами, что вы используете при постраничном выводе, и аналогично выводить в xml или pdf
...
Рейтинг: 0 / 0
Работа с большими данными в J2EE
    #33135503
Gurney
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
white@ wrote:
> При выводе данных постранично, проблем как таковых нет. Возникают
> проблемы когда надо работать со всем объемом данных. НАпример, вывести
> весь список в XML, PDF или куда еще.
>
> Посоветуйте что почитать из литературы по работе с такими проектыми, как
> их проектировать и писать. Буду очень благодарен если поделитесь своим
> опытом работы с крупными данными.
1. Можно забирать данные порциями например по 1000 записей. Для это
использовать методы:
Criteria.setMaxResults()
Criteria.setFirstResult()
2. Получать из запроса не весь список объектов, а итератор по нему. Если
JDBC поддерживает, то на клиента данные будут загружаться только по запросу.
Query.iterator()
Query.scroll()
Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
Работа с большими данными в J2EE
    #33137017
o.p.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gurney
Можно, так работает, но.
2. Получать из запроса не весь список объектов, а итератор по нему. Если
JDBC поддерживает, то на клиента данные будут загружаться только по запросу.
Query.iterator()
Query.scroll()


Я так пробовал, у меня подобная проблема. Я в итераторе хватаю объект и сую его в коллекцию которую потом должен использовать и возвращать в другие места.
И вот, он чуть больше 10,000 вытскивает и падает что out of memory. Проверял несколько раз - всегда чуть больше 10,000.
Может это из за того что суешь много достаточно крупных объектов в list?
Но это необходимо.

Да всегда остается вариант - взять количество всех элементов. И вытаскивать маленькими листами по 1000 например в каждой. Но неудобно. Да и элементы будут не в одной коллекцией. То есть их не отсортировать как надо (то есть исключительно database сортировка ORDER BY остается).

Кто нибудь сталкивался с таким?
...
Рейтинг: 0 / 0
Работа с большими данными в J2EE
    #33137021
mansch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я делал порционно , butch обработка по 5 000 записей
...
Рейтинг: 0 / 0
Работа с большими данными в J2EE
    #33137151
o.p.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вы имели в виду batch?
Только я не понял - что делали порционо?
Тягали порционо? В цикле кусками?
Ну вот и получилось к сожалению - что и я так могу, но мы в результате НЕ сможем это отсортировать никак кроме как изначально задать ORDER BY.
...
Рейтинг: 0 / 0
Работа с большими данными в J2EE
    #33137155
o.p.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
.iterate отлично катит если вы делаете это прямо из сервлета и даете на выход, особо не напрягаясь дальнейшей работой с тем что получили.

у меня более сложная система -- есть кусок EJB связанный с базой, там логика, и именно она должна подгоовить List с результами. вот в этом и пробелма. нет прямого "выпуска"
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Работа с большими данными в J2EE
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]