Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Reportes en Firebird lanzan cpu al 100% (https://www.clubdelphi.com/foros/showthread.php?t=28504)

omarbrdz 21-12-2005 18:58:16

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,

:confused:

Casimiro Notevi 21-12-2005 21:34:17

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.

omarbrdz 21-12-2005 22:30:29

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,

jachguate 21-12-2005 23:15:34

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.

;)

rastafarey 26-12-2005 15:15:15

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)


La franja horaria es GMT +2. Ahora son las 21:08:52.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi