Это загруженный вопрос :)
Вам нужно знать несколько архитектур архитектуры баз данных и их преимущества / затраты.
2 Уровень обычно означает, что у вас есть клиент, подключающийся к БД и выполняющий прямые вызовы SQL.
3 Уровень обычно означает, что у вас есть «сервер приложений», который отправляет прямые вызовы SQL в БД, но клиент общается с сервером приложений. Как правило, это позволяет «масштабировать».
Наконец, у вас есть 2 1/2 многоуровневых приложения, которые используют двухуровневый формат, только работа распределена внутри хранимых процедур.
Ваш процесс звучит как «бэк-офис», и клиентам / процессам просто нужны результаты, которые агрегируются и кэшируются раз в месяц.
То есть, нет агента, который подключается, и часто подключается, и говорит "сделать эти вычисления". Вместо этого вы намекаете на процесс, который происходит время от времени, и можете избежать неприятностей с нереальным временем.
Поэтому, учитывая эти требования, я бы сказал, что в целом будет быстрее быть ближе к данным и позволить SQL-серверу выполнять все вычисления.
Я думаю, вы обнаружите, что близость к данным будет вам полезна.
Однако при выполнении этих вычислений вы можете обнаружить, что некоторые вычисления не поддаются SQL Server. Возьмем, к примеру, расчет начисленных процентов по облигации или любому инструменту с фиксированным доходом. Не очень красиво в SQL, и гораздо больше подходит для более богатого языка программирования. Однако, если у вас просто простые средние значения и другие относительно нормальные агрегаты, я бы придерживался хранимых процедур на стороне SQL.
Итак, еще раз, недостаточно информации о характере ваших вычислений, или о том, что ваш дом требует с точки зрения возможностей разработчиков для поддержки SQL, или о том, что говорит ваш начальник ... но так как я знаю свой путь в SQL, и мне хотелось бы быть ближе к данным, я бы оставался чистым SQL / хранимыми процедурами для такой задачи.
ГММВ:)