Загрузка миллионов строк в спящем режиме - PullRequest
2 голосов
/ 30 сентября 2010

Если я хочу получить миллион строк в спящем режиме, как это будет работать?Будет ли сбой гибернации?Как я могу оптимизировать это.

Ответы [ 5 ]

5 голосов
/ 30 сентября 2010

как правило, вы бы не использовали спящий режим для этого.Если вам нужно выполнить пакетную операцию, используйте sql или оболочки Hibernate для пакетных операций.Невозможно завершить загрузку миллионов записей для вашего приложения.Ваше приложение с трэшем во время работы gc или, возможно, сбоем.должен быть другой вариант.

3 голосов
/ 30 сентября 2010

Если вы прочитаете одну / напишите одну, она, вероятно, будет работать нормально. Вы уверены, что так хотите прочитать 1 000 000 строк? Это может занять некоторое время.

Если вы хотите, чтобы все объекты находились в памяти одновременно, вас вполне могут бросить вызов.

Вы можете оптимизировать его лучше всего, возможно, найдя другой способ. Например, вы можете выполнить дамп из базы данных с помощью инструментов базы данных гораздо быстрее, чем чтение с помощью hibernate.

Вы можете выбирать суммы, максимумы и числа в базе данных, не возвращая миллион строк по сети.

Чего именно вы пытаетесь достичь?

1 голос
/ 30 сентября 2010

Вы должны попробовать посмотреть интерфейс StatelessSession и пример которого можно найти здесь:

http://mrmcgeek.blogspot.com/2010/09/bulk-data-loading-with-hibernate.html

1 голос
/ 30 сентября 2010

Для этого вам лучше использовать инструменты Spring JDBC с обработчиком строк.Он выполнит запрос, а затем выполнит какое-то действие со строкой за раз.

1 голос
/ 30 сентября 2010

Принесите только те колонки, которые вам нужны. Попробуйте в тестовой среде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...