Мне хотелось бы получить несколько советов о том, как лучше всего хранить определения SQL для отчетов для отчетов SSRS 2008.
[Наше веб-приложение будет взаимодействовать с веб-службой SSRS и отображать отчеты в элементе управления VS ReportViewer]
В данный момент вижу 3 варианта
- Хранить SQL в файлах RDL [Определение отчета].
- Сохранить SQL в хранимой процедуре / просмотре [1 SPROC на отчет / родительский отчет]
- Храните SQL для всех отчетов в одной таблице отчетов, в которой как минимум есть столбцы ReportNameORGUID и ReportSQL.
Для целей данного вопроса разработчики отчетов [изначально] будут нашими собственными сотрудниками службы поддержки, обладающими «рабочими» знаниями по SQL. Однако цель группы разработчиков - сохранить жесткий контроль над стандартами и схемами баз данных.
Опция 1 позволяет нашим разработчикам отчетов легко создавать и обновлять отчеты, но SQL распространяется по всем отчетам и может быть сложно контролировать, поддерживать и обновлять.
Вариант 2 будет иметь выигрыш в производительности, но количество SPROCS может увеличиться до огромных размеров, и разработчикам отчетов необходимо иметь возможность создавать SPROCS, и тогда возникает вопрос SQL стандарты, применяемые в SPROCS
Вариант 3 привлекателен с точки зрения управления, и мы могли бы предоставить разработчикам простой экран администратора для обновления SQL в таблице отчетов, но тогда возникает вопрос производительности.
Буду признателен за любые комментарии по дополнительным достоинствам или по иным причинам для трех указанных выше вариантов и, конечно, исправления сделанных мною предположений. Если есть другие доступные варианты, было бы полезно знать.
Предпочтительное решение от DBA pov подробно описано здесь
http://sqlserverpedia.com/blog/sql-server-bloggers/ssrs-should-i-use-embedded-tsql-or-a-stored-procedure/
Заранее спасибо,
Ли