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)
-   -   Crecimiento anomalo fichero Interbase (https://www.clubdelphi.com/foros/showthread.php?t=4806)

EL WINDSURFISTA 29-10-2003 13:35:48

Crecimiento anomalo fichero Interbase
 
Interbase 6.0 instalado sobre un Win2000 y 6 terminales trabajando a tope, el problema esta en el crecimiento del fichero GDB. Si el tamaño es 150MB en un mes de trabajo se duplica a 300MB, realizo un Backup y Restore y se queda en un poco mas 170MB como es lógico. Se realizan muchas consultas. Creo que el problema puede venir por la arquitectura multigeneracional de Interbase, cada vez que hay una consulta, se generan copias de registro, que al final Interbase no elimina.
¿ Como hay que configurar Interbase para solucionar el problema ?.

Gracias

guillotmarc 29-10-2003 15:04:55

Hola.

Interbase/Firebird debería recuperar ese espacio, al concluir la transacción.

¿ Tienes transacciones que se mantienen abiertas mucho tiempo ?. Si mantienes la transacción abierta mucho tiempo y vas confirmando los cambios con un CommitRetaining en lugar de con un Commit, estás impediendo la recogida de basura, con lo que la base de datos puede crecer desmesuradamente, como comentas.

Si es el caso, intenta utilizar algún Commit, cada x tiempo entre los CommitRetaining (o mejor, intenta sustituir los CommitRetaining por Commit).

Saludos.

EL WINDSURFISTA 31-10-2003 12:18:54

He cambiado el programa y cada vez que salen de una opción ejecuto un commit. Observo que el fichero aumenta aproximadamente en 2MB cada día, en un mes puede crecer 40MB. Los usuarios realizan mayoritariamente consultas. Se supone que el recolector de basura entra a funcionar cuando ejecuto un commit.

Gracias.

kinobi 31-10-2003 20:05:08

Hola,

Cita:

Posteado originalmente por EL WINDSURFISTA
Se supone que el recolector de basura entra a funcionar cuando ejecuto un commit.
en principio eso es así. Ahora bien, ¿qué entiendes por basura?. Los registros eliminados no son considerados basura; éstos permanecen ocupando espacio en las páginas de la base de datos hasta que es reclamado por el motor para introducir nuevos datos o se hace una reconstrucción de la base de datos (backup/restore). De todas formas, si, como comentas, la mayor parte de las operaciones son de lectura, y a falta de saber el tamaño de los registros, parece raro.

Si has seguido las indicaciones de Marc, yo probaría (sobre una copia de la base de datos) a utilizar otra versión de InterBase (la 6.0 no es demasiado confiable), bien Firebird o alguna de las versiones comerciales de IB posteriores a la 6.0: 6.5 o 7.x

Saludos.

rastafarey 25-11-2003 22:32:30

puedes hacer un bakup y restore y te evitas ese problema.


Pero tratare de explicarte cual es el problema.

Lo que pasa es que interbase trabaja con una cosa que llaman versioning es decir cada quien trabaja sobre una copia del registro y si se van quedando transaciones en el limbo eso es basura.

Esta forma por ser tan segura y buena. algo tiene que arriesgar, vez esto ocupa mucho espacio en discopa para poder realizar el control de las transaciones pero si tu le quieres desactivar lo mejor que tiene interbase especificale que no use las transacciones con versioning y trabajas al estilo sqlserver

kinobi 26-11-2003 05:42:41

Hola,

Cita:

rastafarey comentó:
[...] pero si tu le quieres desactivar lo mejor que tiene interbase especificale que no use las transacciones con versioning y trabajas al estilo sqlserver
No puedo asegurarlo en IB 7, pero sí en IB 6.x (e inferiores) y en todas las versiones de Firebird, que tal cosa, desactivar la arquitectura multigeneracional (o versionado de registros) y utilizar un mecanismo de bitácoras ("al estilo SQLServer"), no existe. La única novedad, en cuanto a transacciones se refiere, que se ha introducido últimamente son los savepoints, pero no afecta a la MGA.

Saludos.


La franja horaria es GMT +2. Ahora son las 11:36:25.

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