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