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