PDA

Ver la Versión Completa : compactar


AbcXxx
03-07-2003, 22:54:32
hola

una preguntota: como se compactan tablas en IB?, o no es necesario?...

ahhh y en que me baso para determinar el tamano de pagina para las bases de datos (page size)

gracias...

__cadetill
03-07-2003, 23:01:07
Posteado originalmente por AbcXxx
una preguntota: como se compactan tablas en IB?, o no es necesario?...


Con un backup/restore de la BD.

Para hacerlo, tienes varias alternativas
1.- Directamente desde el IBConsole
2.- Desde Delphi con los componentes de la pestaña Interbase Admin (TIBBackuoService y TIBRestoreService)
3.- Desde la linea de comandos con gfix y gback

jachguate
04-07-2003, 02:29:37
En realidad el backup/restore que menciona Cadetill logra que la base de datos ocupe menos espacio, al crear una base limpia de diferentes versiones de los registros; pero en Interbase no existe ni el concepto ni la necesidad de compactar las tablas, que es algo que se aprende cuando se trabaja con dbf's (y no se si con alguna otra) que solamente marcan los registros para borrado y nunca aprovechan el espacio ocupado por estos.

Así que si pensas establecer un mecanismo periodico para compactar la base de datos, yo no te lo recomiendo.

Hasta luego.

;)

Iván
04-07-2003, 10:06:28
InterBase por arquitectura es una Base de Datos que mantiene las diferentes versiones de un mismo registro al ir realizando modificaciones en el mismo. También, al eliminar un registro, este no se borra fisicamente, sino que se marca como borrado.

Para recuperar todo el espacio ocupado hay dos formas:

-Haciendo "sweep" de la Base de Datos. No reduce inmediatamente el tamaño de la BD, pero si que marca las copias anteriores de un registro como espacio recuperable. Al necesitar espacio, la BD recuperará primero el espacio marcado como recuperable y luego usará el marcado como libre.

- Backup / restore, quedándonos directamente con el último registro valido, y con un menor tamaño de la Base de Datos.

Un saludo.

AbcXxx
04-07-2003, 22:56:59
Gracias a los tres, ya quedo claro lo de la compactada...

pero y el tamano de pagina, como lo determino?, o lo dejo asi y no me meto en problemas, creo que biene en 4096 por defecto

Iván
06-07-2003, 12:01:53
El tamaño de página depende de la versión de InterBase que uses. No me acuerdo hasta que versión es pero el tamaño de página era de 1024.

Posteriormente lo modificarón para que fuera 4096 (4K) Te recomiendo este último tamaño, ya que suele ser el tamaña de página que usan los Sistemas Operativos actuales en sus sistemas de fichero.

Un saludo

jachguate
07-07-2003, 10:15:30
El tamaño de página determina, por ejemplo, cuantos registros se almacenarán físicamente en cada página. Además, el tamaño máximo de entradas que tendrá la página de un indice.

Por lo general, podes empezar utilizando páginas de 4096 que en mi experiencia es muy bueno.

Sin embargo, si tenes alguna tabla principal con un tamaño de registro muy grande y con muchos registros... quizas te valdria probar con 8192.

Yo te recomiendo hacer tus propias pruebas; pues el tamaño de página si tiene un impacto importante en el desempeño de la base de datos.

Hasta luego

;)