Каковы преимущества хранимых процедур в PostgreSQL?

Привет всем!

Как думаете, есть ли реальные преимущества от использования хранимок в postgresql?

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

Будет ли выигрыш в производительности? И вообще, какие грабли могут подстерегать на этом пути?
  • Вопрос задан
  • 5130 просмотров
Пригласить эксперта
Ответы на вопрос 5
vollossy
@vollossy
Веб-разработчик с небольшим опытом работы
Выигрыш в производительности определенно будет, хотя бы из-за того, что снимаются накладные расходы на подключение к бд и и передачу информации по сети. Но тут же повысится сложность отладки этих самых хранимых процедур, ну и цена ошибки, особенно на крупных базах. Хранимки имхо очень сложно покрыть автоматическими тестами
Ответ написан
Boniface
@Boniface Автор вопроса
Если реально много бизнес логики то да, а если только CRUD. В одном случае запрос идет из java (тот же sql), а в другом хранится в бд. В юнит тестах все равно будут моки. Или еще в чем то сложности?
А как оно там в постгресе хранится (хранимки)? Они компилируются в нем? Например в SQL server хранимки компилируются, за счет чего повышается производительность.
Ответ написан
Комментировать
Boniface
@Boniface Автор вопроса
Я помню в 2005 году было модно хранимки использовать. И холиваров на эту тему было полно. Многие все CRUD делали через хранимки и дергали через ado.net ( дотнетчикам привет)
Ответ написан
Комментировать
afiskon
@afiskon
Главный выиграш от хранимок - меньше трафик. Если в трафик не упираетесь, вероятно, они вам не нужны. Иногда хранимками еще ограничивают доступ к базе. Все запросы тогда идут через хранимки. Сделать что-то непредусмотренное в случае взлома тогда нельзя. Тоже имеет право на жизнь.
Ответ написан
Комментировать
Boniface
@Boniface Автор вопроса
Ясно, в в целом как считаете хранимки активно используются в сообществе пользователей postgresql или это легаси, мало кто их использует и вообще они слабо развиваются? Вопрос конечно риторический, но все же .
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы