DBInfo es un programa gratis (freeware) desarrollado por la empresa IBSurgeon y que sirve para mostrarnos la cantidad de páginas de nuestra Base de Datos que se usan para cada tarea.

Las bases de datos de Firebird están compuestas por bloques usados para almacenar distinta clase de datos. A esos bloques se los denomina páginas.

Al crear una Base de Datos se puede especificar cual será el tamaño en bytes de cada página. Si no se especifica dicho tamaño entonces se usará el tamaño por defecto, que es de 4096 bytes. Los tamaños posibles son 4096 bytes, 8192 bytes y 16384 bytes.

Un tamaño mayor de la página aumenta la velocidad con que se ejecutan las operaciones (porque el Firebird siempre lleva a la memoria RAM una página completa, nunca media página o una parte de la página), pero en contrapartida hace que las bases de datos ocupen más espacio en el disco duro para almacenar la misma cantidad de datos. Aunque eso, con los discos duros gigantescos actuales, no debería preocuparnos.

Si vemos que las operaciones con la Base de Datos (INSERT, UPDATE, DELETE, SELECT) son lentas, aumentar el tamaño de la página servirá para acelerar dichas operaciones. Es responsabilidad de cada desarrollador buscar el tamaño de página más adecuado para sus necesidades.

Cada tipo de datos se guarda en una página y nunca se mezclan.

Por ejemplo:

  • Todas las filas de una tabla se guardan en páginas donde solamente hay filas de esa tabla
  • Todos los generadores (también llamados secuencias) se guardan en páginas donde solamente hay generadores
  • Todos los índices se guardan en páginas donde solamente están los nodos de ese índice
  • Y así sucesivamente

El programa DBInfo nos muestra esa información, la cual no es de utilidad para los principiantes e intermedios, pueden tranquilamente usar bases de datos de Firebird desconociendo todo sobre las páginas, pero para los usuarios avanzados sí es muy útil porque les permite con algunos simples cálculos comprobar si el tamaño se corresponde con los datos o si se está desperdiciando espacio y si pueden acelerarse las operaciones.

 

DBInfo1

(haciendo click en la imagen la verás más grande)

Aquí podemos ver que para esta Base de Datos el tamaño de la página (Page size) es de 4096 bytes (1). La cantidad total de páginas es 311732 (2) y el tamaño total es 1217.70 megabytes (3)

¿Conociendo el tamaño de cada página y la cantidad de páginas se puede calcular el tamaño total de la Base de Datos?

Sí, y muy fácilmente:

4096 bytes multiplicado por 311732 páginas es igual a: 1276854272 bytes

ahora, si dividimos 1276854272 entre 1024 tendremos la cantidad de kilobytes, que es: 1246928 kilobytes

y si dividimos 1246928 entre 1024 tendremos la cantidad de megabytes, que es: 1217,703125 megabytes

que si te fijas, es la misma cantidad que nos informó DBInfo, con solamente una pequeña diferencia en los decimales.

¿De dónde se puede descargar DBInfo?

Puedes descargarlo desde:

http://www.ibsurgeon.com/products/firebird_interbase/monitoring/dbinfo     (sitio oficial)

http://www.mediafire.com/download.php?6oa1f5lne1pf3wg     (sitio alternativo, si el anterior no funciona)