В основном, выгода # 2 в вашем списке проблем - если вы выполняете много обработки в своей базе данных, то она обрабатывается там и не зависит от приложения, обращающегося к базе данных.
Конечно - если ваше приложение сделает все правильно на уровне бизнес-логики, все будет хорошо. Но как только второе и третье приложения должны подключиться к вашей базе данных, внезапно они также должны убедиться, что соблюдают все бизнес-правила и т. Д., А могут и нет.
Размещение ваших бизнес-правил и бизнес-логики в базе данных гарантирует, что независимо от того, как приложение, сценарий, менеджер с Excel обращаются к вашей базе данных, ваши бизнес-правила будут применяться и ваша целостность данных будет защищенный.
Это основная причина, по которой хранятся процы вместо BLL на основе кода.
Кроме того, используя Views для чтения и Stored Procs для обновления / вставки, администратор базы данных может удалить любые прямые разрешения для базовых таблиц. Вашим пользователям больше не нужно иметь все права на таблицы, и, следовательно, ваши данные в ваших таблицах лучше защищены от случайных или злонамеренных изменений.
Использование подхода хранимых процедур также дает вам возможность контролировать и проверять доступ к базе данных через хранимые процедуры - никто не сможет утверждать, что они не изменили эти данные - вы можете легко доказать это.
В целом: чем важнее ваши данные для бизнеса, тем больше уровня защиты вы хотите создать вокруг них. Вот для чего нужны хранимые процедуры - и они тоже не должны быть сложными - и большинство из этих хранимых процедур могут быть сгенерированы на основе структуры таблицы с использованием генерации кода, так что это также не является большой операцией по печатанию.