Запрос представления к таблицам в наборе данных SSRS - PullRequest
3 голосов
/ 17 ноября 2009

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

Я понимаю, что есть некоторые сценарии, в которых представление было бы лучше (централизация представления для использования в нескольких отчетах), и некоторые сценарии, в которых запрос таблиц был бы лучше (если у вас нет доступа к созданию представлений в источнике БД или если вы используете несколько источников данных БД в одном отчете). Но есть ли какие-либо последствия для производительности? Может ли сервер по-прежнему кэшировать результаты запроса набора данных из SSRS аналогично тому, как это было бы в представлении?

Любое понимание будет оценено: -)

Ответы [ 3 ]

5 голосов
/ 17 ноября 2009

Это зависит.

Использование представления защищает вас от изменений модели данных - таблицы могут меняться, но до тех пор, пока вы можете вывести данные, как это было раньше, все в порядке. Представление - это просто оператор SQL, это все равно, что выполнять выборку. Из-за инкапсуляции существует больший риск того, что основной запрос будет более неэффективным. Использование материализованного представления (индексированного представления в SQL Server) позволяет ускорить выполнение запроса, но требования довольно ограничены.

Если вы видите необходимость в одной и той же информации в многочисленных отчетах - да, используйте представление. В противном случае запросите таблицу напрямую.

В любом случае, сделайте это с помощью хранимой процедуры ...

3 голосов
/ 17 ноября 2009

И я бы предостерег вас от использования представлений, которые ссылаются на другие представления. Я видел, как это создает проблемы с производительностью.

2 голосов
/ 17 ноября 2009

Я обычно использую хранимые процедуры для своих отчетов, так что любой код может быть повторно использован (и постоянен). Кроме того, вы можете применить фильтрацию в sp, что уменьшает время загрузки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...