2015-07-08 5 views
0

Должен ли я попытаться сделать все (или как можно больше) необходимые вычисления для отчета SSRS в SQL-коде (хранимые процедуры) как суммирование, проценты и т. д., или я должен делать вычисления с использованием выражений в построителе отчетов/VS?Лучшая практика SSRS - вычисления данных/агрегирование в SQL SP или в выражениях SSRS (построитель VS/отчетов)

Есть ли преимущество в том, чтобы делать одно над другим?

Другими словами, следует ли пытаться сохранить данные в своих наборах данных очень подробными, подробными, низкими уровнями, а затем использовать Report Builder 3.0/VS для выполнения всех необходимых вычислений/агрегаций?

ответ

2

Существует не один размер подходит для всех. Во многих случаях SQL будет быстрее выполнять агрегации, чем SSRS. SSRS будет быстрее выполнять операции, которые приведут к сканированию таблицы вместо поиска индекса, когда это будет сделано в SQL.

Опыт, здравый смысл и тестирование - лучшие гиды.

1

Практически всегда вы хотите выполнять фильтрацию и вычислять на стороне сервера. Если вы сделаете это через хранимую процедуру, SQL Server может оптимизировать запрос и создать хорошо подготовленный план многократного использования. Вы можете просмотреть результирующий план запроса и оптимизировать его. Это невозможно, если вы создаете и запускаете код на стороне клиента. Как он будет использовать индексы на клиенте? Если в вашем отчете используется много данных, вашему отчету потребуется намного больше времени для запуска, и ваши пользователи будут обвинять вас. Редактор в BIDS намного беднее, чем в SSMS. Procs может быть скопирован и управляться через SVN из TFS. Если вы точно не знаете, что он работает быстрее на клиенте (и это очень редко), узнайте, как создавать хранимые процедуры.

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