Dado: Un motor de cálculo de C# que carga un modelo de objetos, procesa grandes cantidades de números y guarda los resultados en un par de gigantescas tablas de bases de datos megaindexadas en SQL Server. Esas tablas proporcionan datos a las interfaces web, otros módulos de software y los informes de SQL Server Reporting Services 2005.¿Cómo obtengo datos que no pertenecen a Table en SQL Server Reporting Services?
Logré hacer que el motor fuera un lote más rápido en la última versión del software, lo suficientemente rápido ahora que puede proporcionar los datos a petición, a veces incluso más rápido que el tiempo necesario para consultar la base de datos -calculado números. Estoy muy feliz por esto
Ese avance significa que podemos generar datos bajo pedido para las interfaces web y otros módulos de software. Pero las tablas de caché no pueden morir todavía, porque son consumidas por los informes de SSRS (o más específicamente, por procedimientos almacenados que consultan las tablas y proporcionan los datos a SSRS).
Las tablas de caché son un problema, en gran parte de la misma manera que cualquier caché es un dolor en el mundo del software. Sin entrar en demasiados detalles, tienen problemas de sincronización, problemas de bloqueo, etc. El software funcionaría mucho mejor si no tuviera que preocuparme por mantener actualizadas esas tablas.
Pero, ¿de qué otro modo puedo obtener los datos en SSRS? Investigué un poco y nada parece muy prometedor:
- Podríamos proporcionar los datos a través de un servicio web y usar el SSD XML DPE. Pero eso parece espantoso. ¿Tengo razón en que tienes que analizar tu sobre SOAP? ¿Y no es compatible con XPath, sino con un dialecto propio de XPath-y? Nuestros redactores de informes conocen T-SQL, y eso es lo que mejor saben hacer.
- El uso de SQL CLR para alojar nuestra API no es deseable: es una gran aplicación y no se puede hacer nada sin crear un objeto de aplicación e iniciar sesión, etc.
- Uso de SQL CLR para contactar un servicio web en la aplicación web: esta es la más prometedora hasta ahora (este artículo fue útil http://www.simple-talk.com/sql/sql-server-2005/practical-sql-server-2005-clr-assemblies/.) ¿Alguien ha intentado este enfoque? ¿Funciona bien, puede proporcionar grandes conjuntos de datos? OTOH Estoy desconectado por la configuración adicional que tendríamos que hacer en los servidores de base de datos del cliente.
- Cualquier otra sugerencia sería muy apreciada.
He añadido una recompensa para cualquiera que pueda proporcionarme buena experiencia/información/especificaciones/números acerca de si sacar provecho de esto con SQLCLR/Web Services es manejable, o cualquier otra buena idea para ayudar con esta situación. –
Hola, ¿entiendo correctamente que las tablas de caché son utilizadas principalmente por SSRS, con el propósito de informar? Parece que informar es un aspecto de su aplicación/soluciones, pero debido a ese aspecto, está causando un desagradable trabajo de BD, con el propósito de informar. –
Eso es correcto Rihan. Los informes son un componente de la aplicación, y las tablas desagradables existen solo para proporcionar datos para los informes. –