Я не совсем уверен, имеете ли вы в виду, что будет несколько грубых хранимых процедур (которые выполняют отдельные вставки или обновления), или будут ли хранимые процедуры, охватывающие бизнес-логику (сценарии транзакций).Если вы имеете в виду грубые хранимые процедуры, это совершенно плохая идея.(На самом деле, даже если вы начнете с грубого подхода, вы получите скрипты транзакций по мере роста бизнес-логики, так что это одно и то же.) Если вы имеете в виду скрипты транзакций, это подход, который используют некоторые места.Это больно, и нет повторного использования, и в итоге вы получаете кучу очень сложных хранимых процедур, которые ужасно сложно протестировать.Но администраторам баз данных это нравится, потому что они знают, что происходит.
Существует также аргумент (в отношении сценариев транзакций), что он быстрее, потому что меньше циклов, у вас есть один вызов хранимой процедуры, которая выполняет и выполняет все и возвращает результат, в отличие от вашего обычногоПриложение Spring / Hibernate, где у вас есть несколько запросов или обновлений, и каждый оператор передается по сети в базу данных (хотя Hibernate кэширует и переупорядочивает, чтобы попытаться минимизировать это).Минимизация сетевых обходов, вероятно, является наиболее веской причиной такого подхода. Вам нужно взвесить, стоит ли жертвовать гибкостью ради сокращения сетевого трафика или это преждевременная оптимизация.
Еще один аргумент в пользусценариев транзакций заключается в том, что для правильной реализации системы требуется меньше компетенций.В частности Hibernate экспертиза не требуется.Вы можете нанять орду обезьян с кодом и заставить их наброситься на код.Все тяжелые вещи извлекаются из них и помещаются под контроль администратора базы данных.
Итак, резюмируем, вот аргументы для сценариев транзакций: