Разделение уровня отчетности SQL и уровня представления? - PullRequest
0 голосов
/ 28 апреля 2011

Я использую службы отчетов SQL Server.Большинство моих запросов выполняются как отчеты, которые просто экспортируются в формате PDF.

Я хотел бы знать, какой тип вычислений, если таковые имеются, следует выполнять в реальном запросе SQL, а какие следует вычислять с помощью IDE SSRSСтудия бизнес-аналитики.

Например, если у меня есть отчет о продажах за 12 месяцев (12 месяцев), для которого требуется среднее значение продаж за 3 последних месяца, где рассчитать это среднее значение?

Следует ли большинство расчетов /агрегации должны быть сделаны на уровне представления?Какие-то исключения?

Ответы [ 3 ]

2 голосов
/ 29 апреля 2011

Это можно посмотреть двумя способами:

  • куда вы кладете бизнес-логику
  • данное время необходимо для расчетов, где более эффективно

Ответом на любой из них является "это зависит". Для вашего примера 12-месячного отчета, который также отображает тренды, если у вас есть пара параметров, которые изменяют логику, используемую для получения данных, у меня будет соблазн сделать как можно больше в хранимой процедуре SQL (даже в среднем) и сделать отчет довольно "тупым", чтобы просто отображать результаты. Если отчет очень прост или логика специфична только для этого отчета, то в отчете может работать.

Для повторного использования я предпочитаю делать вещи в SQL. Для сложных элементов отображения (тепловое отображение, графики и т. Д.) Отчет, вероятно, лучше.

0 голосов
/ 28 апреля 2011

Я бы держался подальше от того, чтобы отчет делал обходы в базу данных для расчетов. Если ваша группировка и упорядочение хранимых процедур соответствует макету отчета, тогда SSRS достаточно эффективен для проведения агрегированных вычислений.

0 голосов
/ 28 апреля 2011

Сохраняйте логику отчета вместе с отчетом.SQL Server предоставит вам данные, но лучше всего использовать настраиваемую логику для отчета.

...