Compartir a través de


Almacenar en caché informes con "alta compartibilidad"

Otra forma de optimizar la escalabilidad en un proyecto de Crystal Reports para Visual Studio consiste en almacenar en caché informes que tengan una "alta compartibilidad".

Características de un informe con "alta compartibilidad"

Un informe que contiene información común relevante para todos los usuarios tiene alta compartibilidad; por ejemplo, un informe que muestre los beneficios trimestrales de toda la compañía. Por el contrario, un informe que muestre los días libres acumulados por un empleado es específico del usuario y, por lo tanto, tiene una compartibilidad baja.

Persistencia y compartibilidad

Para ver la mayoría de los informes es necesario realizar varias recargas de páginas, ya sea para ver otra página del informe o para reflejar los cambios basados en la interacción con la barra de herramientas del visor o el código en tiempo de ejecución. Para que el informe conserve su estado entre las recargas de páginas se debe almacenar, o conservar, en la memoria del servidor.

Existen varios métodos de persistencia entre los que elegir. Dichos métodos se analizan en detalle en la sección ¿Cuál es el enfoque de persistencia que se debe utilizar con Crystal Reports?. Sin embargo, la mayoría de los informes se conservan ubicándolos bien en el objeto Session del usuario o en el objeto Cache de la aplicación. Los informes con compartibilidad baja se deberían conservar utilizando el objeto Session del usuario (vea Session y persistencia del modelo de objetos ReportDocument). Los informes con compartibilidad alta se deberían conservar utilizando el objeto Cache de la aplicación (vea Cache y persistencia del modelo de objetos ReportDocument).

Persistencia y escalabilidad

El uso adecuado de la persistencia supone un beneficio para la escalabilidad, ya que evita el uso innecesario de memoria del servidor. Por ejemplo, si se ubicaran informes con compartibilidad baja en el objeto Cache de la aplicación supondría un desperdicio de memoria, ya que los informes específicos de usuario permanecerían en el objeto Cache mucho tiempo después de que el usuario saliera de la aplicación. Al contrario, si se ubicaran informes con alta compartibilidad en el objeto Session del usuario, supondría un desperdicio de la memoria y se generaría una gran redundancia debido al almacenamiento de numerosas instancias de un informe donde sólo se necesita una.

El uso de la persistencia a nivel de usuario (Session), con informes de compartibilidad baja, y a nivel de aplicación (Cache) con informes de compartibilidad alta, maximiza la escalabilidad de la memoria del servidor.