![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Reportes en Firebird lanzan cpu al 100%
Tenemos una base de datos de aproximadamente 500 mb de archivo en disco duro, pero cuando ejecutamos ciertos reportes creados en el report builder, el uso del cpu se va al 100%, y automáticamente todo nuestro sistema se pone lento en cualquier computadora que esté en la red (se pone lento el sistema , no los equipos ni otras aplicaciones), el problema es que ciertos reportes tardan más de 5 min. en ejecutarse; por otra parte tenemos otra base de datos de aproximadamente 150 mb, y los mismos reportes, también incrementan el uso del cpu al 100%, sin embargo, solo duran unos cuantos segundos a lo mucho, no más de un minuto (las 2 bases de datos utilizan la misma red local, mismos switches)
¿Será que el tamaño de la base de datos hace que se tardan tanto en ejecutar los reportes? o ¿podría haber otro problema?. Por lo pronto, lo que hicimos fue poner una computadora aparte para ejecutar los reportes que alentan tanto al sistema, para no afectar a todos los usuarios, y la medida nos ha ayudado bastante. Agradecería mucho sus sugerencias o comentarios Saludos, ![]() |
#2
|
||||
|
||||
Comprueba el "select" que crea el report builder, cópialo al ibexpert o al programa que uses y mira cuanto tarda, luego debes "afinar" el informe, por ejemplo, si tiene alguna "ordenación" o se ejecuta con "doble pasada", en ambos casos estás obligando a traerse TODOS los datos por la red para ordenarlos y preparar el informe en el equipo local, por lo que es normal que ocurran esos problemas. Procura crear un query simple, rápido, liviano... que se ejecute en el servidor y el resultado se lo pasas al informe, o sea, piensa en cliente/servidor, como si fuese un procedimiento almacenado que se ejecuta en el servidor y que el cliente sólo recibe el resultado.
Espero que me haya explicado bien y ojalá puedas resolver ese problema. También intervienen otros factores, como el tamaño y lugar del directorio temporal, por ejemplo.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#3
|
|||
|
|||
Muchas gracias por la respuesta, voy a intentar irme por los métodos que me estás proponiendo , a ver que se puede mejorar.
saludos, |
#4
|
||||
|
||||
Parece un problema de optimización de la consulta. Habrá que ver que tipo de informe estas lanzando para que se tarde tanto como 5 minutos. Regularmente este tema de "optimización" tiene que ver con la comprensión del funcionamiento del motor, de las estructuras y de los datos típicos almacenados en estas para crear indices y consultas que se ejecuten consumiendo el mínimo de recursos del servidor.
Hasta luego. ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#5
|
||||
|
||||
Resp
Si tu reporte normalmente es muy leno por que necesariemente dbe traer muchos datos entoences a te diron la respuesta debes dejar que el trabajo peso lo haga el servidor y no el cliente. Te vulevo a repetir que ya se te dio al respuesta(us un store procedure)
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa. |
![]() |
|
|
![]() |
|