hibernate v / s выполнение хранимых процедур или функций - PullRequest
6 голосов
/ 10 мая 2011

Я анализирую параметры слоя базы данных в моем приложении. Я нашел hibernate очень популярным выбором, однако немногие друзья сказали, что лучше использовать хранимые процедуры / функции, чем переходить на hibernate. Hibernate имеет проблемы с производительностью по сравнению с этими объектами базы данных. Есть ли другой вариант? Мое приложение может иметь очень большой объем транзакций, поэтому необходимо выбрать параметр, который дает лучшую производительность. Может кто-то пролить свет на это и помочь мне выбрать лучший вариант. Я использую Spring Framework в качестве ядра и Richfaces для веб-слоя.

Ответы [ 3 ]

3 голосов
/ 13 мая 2011

Мое приложение может иметь очень большой объем транзакций, поэтому необходимо выбрать опцию, которая дает лучшую производительность

Что ж, если производительность является вашим единственным (или основным) эталоном, то еготрудно победить пакеты Oracle на сервере БД.Тем не менее, ваша компания должна учитывать сильные стороны своих разработчиков.Это магазин с в основном разработчиками Java и 1 или 2 одинокими разработчиками Oracle и 1 администратором баз данных?Если это так, не разрабатывайте свою систему промежуточного программного обеспечения в пакетах Oracle, возможно, у вас есть какой-то сервис XML, написанный на Java с использованием Hibernate.Не будет так быстро под нагрузкой, но будет проще в обслуживании и расширении для ВАШЕЙ компании.

Примечание: я склонен к использованию технологий Oracle, но в этом мои сильные стороны.

2 голосов
/ 10 мая 2011

Лучший вариант - , вы поймете .Иногда использование любого ORM прекрасно и будет поддерживать вас, в других случаях это не лучший вариант.Я думаю, что реальный ответ заключается в том, что это зависит от того, что вы делаете, как вы это делаете и от качества дизайна продукта.Все это имеет значение и может в значительной степени диктовать провал или успех.

В итоге, абсолюты - это ужасная политика - используйте технологию, которая работает и решает проблему.Если это становится проблемой, повторите оценку.

1 голос
/ 27 декабря 2016

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

С точки зрения производительности, я считаю, что, поскольку написание хранимой процедуры означает, что вы находитесь ближе к базе данных, это неизменно приведет к более быстрому выводу при эффективном написании.Следовательно, hibernate, поскольку его работа с базой данных не может быть быстрее, чем с базой данных.Свобода оптимизации запросов - это то, что спит у вас в спящем режиме, и, несмотря на то, что Hibernate может предложить множество оптимальных запросов, все же могут быть некоторые шансы на лучшую оптимизацию.

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

Итак, для подведения итогов я предлагаю использовать процедуры и функции для хорошей производительности

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