2012-03-20 3 views
1

Мы начинаем новый проект с использованием JPA/Hibernate. Кто-то из команды отказывается использовать именованные запросы, говоря, что у него были проблемы с производительностью с теми, что были раньше. По его словам, именованные запросы не только анализируются при запуске, но и выполняются, что значительно замедлит запуск.Hibernate назвал запросы и начальные характеристики

Правильно ли, и если да, существует ли какая-либо конфигурация для предотвращения выполнения спящего режима для выполнения запросов?

ответ

1

Но они работают быстрее .. Так что бы вы предпочли, более медленный запуск или более быстрая производительность запросов.

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

Но это, конечно, теория. Как всегда, когда дело доходит до производительности, вы должны проверить и проверить свою собственную систему!

Здесь приятно читать на эту тему: http://eubauer.de/kingsware/2011/03/25/organize-your-named-jpql-queries/

1

По его словам, названные запросы не только проанализированы при запуске, но они также выполняются, которые существенно замедляют запуск.

Нет, это неправда. Именованные запросы не запускаются при запуске. Это разобранный и скомпилированный во время запуска, но не выполнен против базы данных.

Правильно ли, и если да, существует ли какая-либо конфигурация для предотвращения спящего режима от выполнения запросов?

Если вы спрашиваете, как предотвратить компиляцию таких запросов, AFAIK нет возможности отключить его.

Хотя я согласен, что огромное количество именованных запросов может замедлить запуск приложения, но, как правило, это не существенный фактор.

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

С уважением

Смежные вопросы