Hibernate именованные запросы и производительность при запуске - PullRequest
2 голосов
/ 20 марта 2012

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

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

Ответы [ 2 ]

1 голос
/ 11 сентября 2014

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

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

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

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

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

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

1 голос
/ 20 марта 2012

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

Вы также получите хорошую выгоду от проверки, так что вы обнаружите свои ошибки раньше ..

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

Вот хорошее прочтение на эту тему: http://eubauer.de/kingsware/2011/03/25/organize-your-named-jpql-queries/

...