¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Cómo optimizar Crystal Reports para acceder a grandes bases de datos en SQL Server

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 62 Vistas
0
Cargando...

Windows 7 Pro - SAP Crystal Reports 2016 Support Pack 2 Version 14.2.2.1975

Utilizo Crystal para conectarme a una base de datos alojada de forma remota en SQL Server. Algunas de las tablas a las que accedo tienen alrededor de 2 millones de filas. No puedo utilizar una conexión ODBC porque, por alguna razón que nadie puede explicar, cuando me conecto con ODBC muchos de los campos de datos desaparecen en muchas de las tablas. Esto no sucede con OLE. Sin embargo, con demasiada frecuencia, cuando realizo cambios en un informe y a veces con un informe nuevo que previsualizo o actualizo, Crystal comienza a mostrarme el recuento de registros que está leyendo, y luego el proceso se ralentiza y eventualmente parece detenerse. Si hago clic en el botón de detener, generalmente obtengo "No responde" en la barra superior y hago clic en la "X" de Cerrar y cierro Crystal o selecciono intentar restaurar el programa. Cuando se restaura, si intento actualizar, recibo mensajes de problemas de red/conexión. Creo que hay retrasos o interrupciones en el flujo de datos mientras se están leyendo los registros y algo está agotando el tiempo o no volviendo a intentar o ???. Hay una serie de "propiedades" enumeradas en la segunda página de la información de la Conexión OLE y no sé qué hacen. Estoy pensando que modificar las propiedades podría ayudar. No he encontrado nada útil en la ayuda ni en ningún otro recurso que haya probado.

Adjunto un fragmento de la información en la página de Información Avanzada. La mayoría de los informes se ejecutan bien la mayor parte del tiempo. Los informes que se unen a las tablas grandes son más propensos a tener el problema. He escrito aproximadamente 200 informes que acceden a esta base de datos y los más lentos generan en 5 minutos o menos a menos que se ralenticen y se detengan. No tengo el tiempo ni la paciencia para esperar y ver si el informe se completa en más de 10 minutos y ninguno de los usuarios para los que escribo informes tiene tiempo para esperar informes de generación lenta.

capture.jpg
Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

1 Respuestas

0
Cargando...

Sospecho que parte de lo que está sucediendo puede ser una de tres cosas: latencia de red entre el informe y la base de datos, problemas de memoria, problemas de espacio en disco. Otra cosa que podría estar ocurriendo es que quizás estés utilizando un controlador de SQL Server más antiguo. Dependiendo de la versión de la base de datos a la que te estás conectando, necesitarás la versión 10.0 o 11.0 del Cliente Nativo de SQL Server para obtener los mejores resultados.

Parte del truco al tratar con grandes cantidades de datos en Crystal es enviar tanto como sea posible a la base de datos. De lo contrario, el procesamiento normal de Crystal puede sobrecargar la memoria y el espacio en disco (realiza su propio intercambio a disco en lugar de utilizar el espacio de intercambio de Windows). Hay varias cosas que puedes hacer para ayudar con esto:

1. En Archivo>>Opciones, ve a la pestaña de Base de Datos y asegúrate de que estén marcadas tanto "Usar Índices o Servidor para Velocidad" como "Realizar Agrupación en el Servidor".

2. En el mismo lugar, desmarca "Verificar en el Primer Actualizar".

3. Si estás vinculando tablas, no uses fórmulas en el Experto de Selección. Esto incluye declaraciones If. Si tienes que usar una fórmula para, por ejemplo, obtener una subcadena, intenta codificarla en una Expresión SQL y luego úsala en el Experto de Selección.

4. Si tu informe muestra solo resúmenes (suma, máximo, etc.) y no los datos sin procesar, escribe un Comando (Declaración de Selección SQL) para proporcionar todos los datos para el informe; esto enviará los cálculos de resumen a la base de datos en lugar de que Crystal los calcule en memoria.

Además, cuando cierras Crystal cuando se cuelga, no limpia después de sí mismo: habrá archivos temporales potencialmente grandes en tu carpeta temporal que querrás eliminar. El formato del nombre del archivo será algo como ~*.rpt.

-Dell

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?