Дано: Механизм вычисления C#, который загружает объектную модель, сжимает огромное количество чисел и сохраняет результаты в пару гигантских мегаиндексированных таблиц базы данных в SQL Server. Эти таблицы предоставляют данные для веб-интерфейсов, других программных модулей и отчетов SQL Server Reporting Services 2005.Как получить данные, отличные от таблицы, в SQL Server Reporting Services?
Мне удалось сделать двигатель лот быстрее в последней версии программного обеспечения, достаточно быстро, чтобы он мог предоставлять данные по запросу - иногда даже быстрее, чем время, необходимое для запроса базы данных для предварительной вычисляемые числа. Я очень доволен этим.
Этот прорыв означает, что мы можем генерировать данные по запросу для веб-интерфейсов и других программных модулей. Но таблицы кэша еще не могут умереть, потому что они потребляются отчетами SSRS (или, более конкретно, хранимыми процедурами, которые запрашивают таблицы и предоставляют данные для SSRS.)
Таблицы кэша - это боль, так же, как любой кеш - это боль в мире программного обеспечения. Не вдаваясь в подробности, у них есть проблемы с синхронизацией, проблемы с блокировкой и т. Д. И т. Д. Программное обеспечение будет работать гораздо лучше, если мне не придется беспокоиться о том, чтобы обновлять эти проклятые столы.
Но как еще я могу получить данные в SSRS? Я провел довольно много исследований и ничего не выглядел слишком многообещающе:
- Мы могли бы предоставить данные через веб-службу и использовать SSRS XML DPE. Но это выглядит отвратительно - я прав, что вам нужно самостоятельно разобрать свой SOAP-конверт ?! И он не поддерживает XPath, а проприетарный диалект XPath-y? Наши авторы отчетов знают T-SQL, и это то, на что они лучше всего.
- Использование SQL CLR для размещения нашего API нежелательно - это большое приложение, и вы ничего не можете сделать без создания объекта приложения и входа в систему и т. Д.
- Использование SQL CLR для связи с веб-службой на веб-приложение - это наиболее перспективно до сих пор (эта статья была полезной http://www.simple-talk.com/sql/sql-server-2005/practical-sql-server-2005-clr-assemblies/.) Кто-нибудь пробовал этот подход? Он работает нормально, может ли он предоставлять большие наборы данных? OTOH Я отключен дополнительной настройкой, которую нам нужно будет делать на клиентских серверах БД.
- Любые другие предложения были бы высоко оценены.
Я добавил щедрость для всех, кто может предоставить мне хороший опыт/информацию/спецификации/номера о том, можно ли с этим справиться с помощью SQLCLR/Web Services или любыми другими хорошими идеями, которые помогут в этой ситуации. –
Привет, правильно ли я понимаю, что таблицы кэша используются в основном для SSRS для целей отчетности? Похоже, что отчетность является аспектом вашего приложения/решений, но из-за этого аспекта он вызывает некоторую неприятную работу БД для целей отчетности? –
Правильно Рихан. Отчетность является компонентом приложения, а скверные таблицы существуют только для предоставления данных для отчетов. –