2014-10-24 3 views
0

Я работаю над своим первым докладом SSRS, и мне не удалось найти общие рекомендации относительно того, как создавать отчеты. В частности, я хотел бы знать, что такое общий подход, когда агрегированные данные необходимы для отчета. Например, предположим, что мне нужно, чтобы показать следующее в своем докладе:Где собирать данные с помощью служб отчетов Microsoft?

Блины --- 34
Яйца ---------- 56
Bacon -------- 73

У меня есть еще несколько строк, как указано выше, которые должны отображать агрегированные данные. В настоящее время я группирую всю строку по типу, а затем в каждой ячейке я показываю счет следующим образом: [Count (Status)].

Мой отчет уже занимает 45 секунд. Как правило, предпочтительнее делать такую ​​агрегацию в запросе? Или это зависит от количества возвращаемых данных? Любые указатели приветствуются. Благодаря!

ответ

2

Как и во всех ответах SQL: зависит от.

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

В качестве побочного примечания, если ваш отчет занимает 45 + секунд для запуска, скорее всего, ваш SQL не оптимизирован очень хорошо, или ваш отчет выполняет множество сложных вычислений. Чем больше работы вы можете вернуть на SQL-сервер, тем лучше будет ваша производительность. SQL Server предназначен для хрустания чисел и выполнения агрегаций, поэтому, конечно, пусть он делает то, что он делает лучше всего, когда это возможно.

YMMV, поэтому всегда выполняйте тестирование производительности для разных методов, чтобы увидеть, что лучше всего работает.

+0

Благодарим вас за этот очень проницательный ответ! – Bruno

Смежные вопросы