скорость выборки в hibernate
От: Amigo111  
Дата: 18.03.10 14:10
Оценка:
делаю запрос для получения списка объектов через
List list = getHibernateTemplate().find(sql);
в маппинге везде поставлены lazy="true" на связанные коллекции..включил логи хибернейта, чтобы отображал формируемые запросы..выполняется всего один запрос..и засекаю время выполнения и кол-во полученных объектов
952 объекта — 15 секунд
12 тыс. объектов — 160 секунд
это вообще нормально для хибернейта?

пробую выполнять формируемые хибернейтом sql-запросы в клиенте к бд..моментально выполняются..

Может знаете куда смотреть?
Re: скорость выборки в hibernate
От: Blazkowicz Россия  
Дата: 18.03.10 14:27
Оценка: +1
Здравствуйте, Amigo111, Вы писали:

A>пробую выполнять формируемые хибернейтом sql-запросы в клиенте к бд..моментально выполняются..

ORM в первую очередь преднозначены для упрощения работы с разветвленной моделью объектов. Для выборки больших массивов данных лучше взять другой инструмент.
Re: скорость выборки в hibernate
От: techgl  
Дата: 18.03.10 18:10
Оценка:
Здравствуйте, Amigo111, Вы писали:

A>это вообще нормально для хибернейта?

А если профайлером посмотреть, основное время будет на отображение ResultSet -> Object затрачиваться?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: скорость выборки в hibernate
От: intr13 Россия  
Дата: 19.03.10 00:08
Оценка:
Здравствуйте, Amigo111, Вы писали:

A>Может знаете куда смотреть?


Надо запускать профайлер (http://www.eclipse.org/tptp/), возможно время тратится на парсинг и преобразование HQL в SQL. Но скорее всего основное время тратится на парсинг результата и создание нужных объектов.
Re: скорость выборки в hibernate
От: Andrei N.Sobchuck Украина www.smalltalk.ru
Дата: 19.03.10 07:44
Оценка:
Здравствуйте, Amigo111, Вы писали:

A>952 объекта — 15 секунд

A>12 тыс. объектов — 160 секунд
A>это вообще нормально для хибернейта?

Абсолютно нормально
http://rsdn.ru/forum/java/2788819.aspx
Автор: Andrei N.Sobchuck
Дата: 08.01.08


A>пробую выполнять формируемые хибернейтом sql-запросы в клиенте к бд..моментально выполняются..


И это ты еще до скорости работы с хиб-прокси не дошел http://rsdn.ru/forum/java/2802706.1.aspx
Автор: Andrei N.Sobchuck
Дата: 18.01.08


A>Может знаете куда смотреть?


Сюда: http://www.rsdn.ru/forum/java/3676473.aspx
Автор: Cyberax
Дата: 21.01.10

Если кратко или выкинь хибернейт или собери волю в кулак и терпи.
И еще, если объекты вытягивать не через HQL, а через native-sql, то работает мапинг радикально быстрее (меньше оверхед). Если через HQL вытягивать не объекты, а примитивные поля, то оверхед от хиба минимальный (а в качестве плюсов остаются и запросы по объектной модели и крос-диалектные запросы).
Я ненавижу Hibernate
Автор: Andrei N.Sobchuck
Дата: 08.01.08
!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.