Pregunta

Me di cuenta de que para los informes de cristal realizados por nuestra organización y por algunos de nuestros proveedores de software de la época tienden a usar tablas físicas para los conjuntos de datos de sus informes, en lugar de usar una vista o un procedimiento almacenado para recopilar los datos. De vez en cuando he visto informes, use procedimientos almacenados que luego usan físico tablas en lugar de tablas temporales para almacenar y manipular conjuntos de datos. En estos casos, la salida del informe a menudo existe como una tabla como rpt_ap_vendors o similar, y puede o no estar desprovisto de datos cuando no está en uso.

Estos son siempre casos en los que el informe se genera a pedido, por lo que este no es un caso en el que se pueda generar un informe una vez y servido varias veces, y no hay múltiples informes/procedimientos almacenados que accedan a estos datos al mismo tiempo.

¿Qué razón habría para usar tablas físicas para informes como este? ¿Existe una razón lógica, técnica o relacionada con el rendimiento para hacerlo? Al generar informes, personalmente siempre he usado vistas y procedimientos almacenados con tablas temporales o tablas mejor aún derivadas para evitar lecturas de discos adicionales que impliquen limpiar/eliminar una tabla temporal.

¿Fue útil?

Solución

(+) Razones para crear una tabla física para almacenar datos de informe:

  • Los datos del informe son reutilizables. Apunto a Crystal Reports o SharePoint a la tabla y luego no se preocupe por la frecuencia o cuándo esas herramientas o mis usuarios finales acceden a los datos. (Bueno, hasta cierto punto, ya que leer repetidamente una gran tabla de informes destrozará mi caché del búfer). También puedo mantener una ventana deslizante de informes antiguos para las solicitudes inevitables en la línea de: "¿Puede generar el informe del año pasado nuevamente? No puedo encontrar el CSV que extraí en ese momento ".

    Esta es probablemente la razón principal por la que está configurado de esa manera en su sitio. Los informes de Crystal pueden no ser lo suficientemente inteligentes como para almacenar en caché los datos del informe como usuarios paginan a través de él o cambian la configuración del informe. Entonces, en el peor de los casos, CR es regenerar su informe con cada una de esas acciones, una operación costosa y que lleva mucho tiempo. Con la tabla física, solo vuelve a ser considerada la mesa tantas veces como sea necesario.

  • Establecer permisos en el informe es fácil. ¿Quieres ver este informe? Bueno, todo lo que necesita es permiso para leer los resultados, No generarlos. Así que aquí, tenga algunos derechos de lectura en esta tabla en un esquema bloqueado y un grupo de archivos/espacio de tabla.

Al almacenar en caché manualmente el informe, usted controla y aislan el proceso de generarlo. Le das a los lectores a los lectores más libertad para actuar y a ti mismo menos de lo que preocuparse como DBA.

(-) Lo que pierde con una tabla de informes físicos:

  • Flexibilidad. ¿Quieres cambiar el informe? Argh, necesita algunos cambios DDL.
  • Espacio de almacenamiento. Estás persistiendo los datos en el disco, así que duh.

Otros consejos

En un empleador anterior, algunos de los informes tardarían horas en ejecutarse. Los informes de fin de mes y trimestres fueron los peores (8 y 20 horas respectivamente). Al calcular los resultados y almacenarlos en una tabla permanente, el usuario podría observar los resultados del informe a Whim sin recalcular los números sobre la marcha. El proceso que calculó los informes pudo reiniciar si se interrumpió, por lo que también ayudó: en esa parte del sur de Florida, había múltiples cortes de energía de segundo día cada día. Si bien la compañía tenía un generador en el sitio para los días de mal tiempo, no todo el personal tenía UPSE.

Algunos de los "usuarios eléctricos" querían poder acceder a los datos y reducir los números en Excel, por lo que tenían acceso de solo lectura a las tablas de informes.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a dba.stackexchange
scroll top