Отделение отчетного уровня SQL и уровня презентации?
-
26-10-2019 - |
Вопрос
Я использую службы отчетности SQL Server. Большинство моих запросов запускаются как отчеты, которые просто экспортируются как PDF.
Я хотел бы знать, какой тип расчетов, если таковые имеются, должны делать в фактическом запросе SQL, а какой следует рассчитывать с помощью SSRS IDE (Studio Business Intelligence).
Например, если у меня есть 12 -месячный отчет о продажах (12 месяцев), который требует среднего продаж в 3 последних месяца, где следует рассчитать среднее значение?
Должны ли большинство расчетов/агрегаций быть сделаны в презентационном уровне? Есть исключения?
Решение
Это можно посмотреть по двум способам:
- Куда вы ставите бизнес -логику
- Учебное время необходимо для расчетов, где более эффективно
Ответ на любой из них «это зависит». Для вашего примера 12-месячного отчета, в котором также отображались тенденции, если у вас есть пара параметров, которые изменяют логику, используемую для получения данных, у меня возникла искушение сделать как можно больше в хранимой процедуре SQL (даже в Средние значения) и сделать отчет довольно «глупым», чтобы просто показать результаты. Если отчет очень прост или логика характерна только для этого отчета, то в отчете может работать.
Для повторного использования я предпочитаю делать вещи в SQL. Для сложных отображений (нагревание, графики и т. Д.), В отчете, вероятно, лучше.
Другие советы
Держите логику отчета в отчете. SQL Server предоставит вам данные, но лучше всего сохранить индивидуальную логику в отчете.
Я бы держался подальше от того, чтобы отчет сделал об обратном обработке в базу данных для расчетов. Если ваша сохраненная процедура (ы), группировка и упорядочение, соответствуют вашему макету отчета, то SSRS довольно эффективна для создания агрегированных расчетов.