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)
-   -   achicar base de datos gdb (https://www.clubdelphi.com/foros/showthread.php?t=23728)

pmfras 26-07-2005 21:37:16

achicar base de datos gdb
 
como puedo hacer para que los registro que borro, se borren fisicamente y me mantenga la base en su real tamaño. Uso firebird.

vtdeleon 26-07-2005 21:51:40

Saludos

No estoy completamente seguro, pero creo qque realizando un Commit a la BD se aplicaran los cambios fisicamente
Qeu alguien me corrija:)

jachguate 27-07-2005 00:04:38

El espacio ocupado por los registros borrados en una BD firebird es reutilizado automáticamente por la base de datos. Esto no ocasiona ningún inconveniente en una base de datos "normal" en producción, pues regularmente son mas los regsitros que se añaden que los que se borran.

Internamente los registros están almacenados en páginas, asociadas a cada objeto de la BD. Así, si un registro ocupa 10 bytes, una página de 4K podrá contener unos 400 registros. La página existirá aún cuando solo almacene 1 registro, y mas importante aún... la página seguirá existiendo aún cuando no almacene ningún registro, marcada como "reutilizable" para cuando el sistema necesite una nueva página.

Así, si tu BD está en producción en estas condiciones "normales", no hay por que preocuparse. En cambio si ha sufrido un borrado masivo de datos o hay algun otro motivo por el cual querras ver reducido su tamaño, podes hacer un backup y luego un restore, con lo que ocupará el mínimo necesario.

Por otro lado, el rendimiento de la base de datos es tan bueno con 10 páginas como con 10,000 o 100,000, o las que tenga, a menos que tengas un disco duro muy lento o viejo.

Saludos.

Casimiro Notevi 27-07-2005 00:16:48

Además de que una base de datos "llena" por completo es más lenta al insertar nuevos datos porque tiene que hacer una llamada al sistema operativo para incrementar el tamaño en una página más y luego insertar los datos.
Sin embargo, si tiene espacio desocupado porque se haya borrado algo, usará ese espacio y se ahorrará de aumentar el tamaño de la misma.
Esto es algo que leí de los consejos de borland en relación con interbase. Creo que el ejemplo era más o menos de que se insertara una cantidad enorme de registros en un campo blob y luego se eliminaran esos datos, por lo que al final resultaba una base de datos muy grande pero que estaba casi vacía con una cantidad enorme de espacio sin usar.

rastafarey 28-07-2005 22:31:25

Resp
 
Tu pregunta tiene facil respuesta.

Has bakup y restore. Eso libera el esapcio maracado como disponible.

Y veriosnes de registros dejado por transaciones en el limbo


La franja horaria es GMT +2. Ahora son las 04:22:54.

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