PDA

Ver la Versión Completa : Aumento desproporcionado del tamaño de las bases de datos en FireBird


insoft
11-12-2013, 13:53:51
Estamos desarrollando nuestra aplicación con Delphi XE3 y FireBird 2.5.2. En nuestras bases de datos manejamos codificación ISO8859-1.

Hemos detectado que las bases de datos empiezan a aumentar su tamaño de manera exagerada y el acceso a las mismas se vuelve más lento. Cuando las conectamos a un gestos de base de datos como EMS SQL Manager obervamos que al tratar de abrirla se demora demasiado cargando los "Procedures". Al estar abierta y activa tratamos de abrir uno a uno los Procedures y hemos hallado que algunos de ellos no se pueden visuarlizar y generan un error de "Out of Memory" dando a entender que es demasiada la información de éste y que no puede ser mostrada.

Luego de analizar los procedures nos dimos cuenta que si en ellos se incluían vocales con tilde como á, é, í, ó, ú, Á, É, Í, Ó, Ú dentro de los comentarios, dichos caracteres serían reemplazados por otros como el caracter à y este a su vez se volvía a multiplicar miles de veces hasta hacer llegar la base de datos a tamaños de Gigas.

Solicitamos su colaboración para solucionar este problema que está incluso afectando la generación de las copias de seguridad (archivos FBK) y su posterior restauración (archivos FDB).

cloayza
11-12-2013, 14:42:50
Te cuento mi experiencia...

Tengo varias bases de datos con la siguiente configuración, te coloco un ejemplo


/******************************************************************************/
/*** Generated by IBExpert 2012.02.21 11/12/2013 10:02:57 ***/
/******************************************************************************/

SET SQL DIALECT 3;

SET NAMES ISO8859_1;

SET CLIENTLIB 'fbclient.dll';

CREATE DATABASE '192.168.1.1:MNSBanco'
USER 'SYSDBA' PASSWORD '******'
PAGE_SIZE 16384
DEFAULT CHARACTER SET ISO8859_1 COLLATION ISO8859_1;


Firebird: 2.5.2
Tamaño: 1.08 GB

Gestionada con IBExpert y sinceramente no he tenido problemas como los que tú mensionas.

En los procedimientos y comentarios las vocales van tildadas y no he detectado un aumento de tamaño, lentitud en la gestión de procedimientos almacenados o vistas que este fuera de lo normal.

Talvez podrías con probar IBExpert

Saludos cordiales

Casimiro Notevi
11-12-2013, 14:50:39
Qué raro, nunca he visto eso.

ecfisa
11-12-2013, 18:29:19
Hola.

No, tampoco tengo conocimiento de algo así...

Sería interesante poder ver alguno de los procedimientos que está generando ese comportamiento. (Siempre y cuando no te importe publicarlo)

Saludos. :)

Toni
11-12-2013, 18:34:02
Hola,

Yo tambien utilizo esa version de Firebird (32/64btis) y ese mismo set de caracteres en mis bases de datos y no he tenido ningun problema hasta la fecha de engorde de la base de datos relacionado con eso. Ademas tambien utilizo como herramienta administrativa el EMS SQL Manager.. Lo que si es cierto que en los procedimientos si pongo tildes cuando los vuelvo a abrir me los ha sustituido por otro caracter. Pero creo que esto me pasa porque utilizo una version algo antigua del EMS SQL Manager. Por lo que ya no pongo tildes.. jajaja Por lo demas bien.

Hace unos años en un proyecto en concreto me paso algo parecido de engorde de la base de datos, pero fue con Firebird 1.5. Y el problema era de programación de mi aplicación y algunos procedimientos en Firebird que por cuestion del tiempo de entrega del proyecto se hicieron a lo 'bruto' haciendo muchos recalculos 'masivos' de tablas. Mas tarde depuramos el programa y todo volvio a la normalidad.

La solucion inmediata es hacer backups/restore a tu base de datos mas frecuente, hasta que encuentres el problema.

Saludos,

duilioisola
12-12-2013, 15:41:37
La conversión de un caracter "especial" a otro depende de dos variables:

El CHARSET de la base de datos.
El CHARSET del cliente que se conecta.


En IBExpert, cuando creas una conexión te presenta la opción para seleccionar.
Puedes elegir "NONE", y la base de datos tratará de hacer lo mejor que pueda para convertir.
Si le dices que trabajas con ASCII, ISO80... WIN12... o lo que sea, tratará de convertir según las tablas de conversión.

Con respecto a lo de que crece en tamaño no he tenido ningún problema.

Young
13-12-2013, 19:24:24
Te recomiendo leas este artículo donde se toca el tema de transacciones mal administradas, lo que podría influir en el tamaño y rendimiento de una db. De no ser así nunca está demás...

http://firebird21.wordpress.com/2013/12/07/un-ejemplo-de-transacciones-mal-administradas/

Saludos.

Casimiro Notevi
13-12-2013, 20:31:56
Te recomiendo leas este artículo donde se toca el tema de transacciones mal administradas, lo que podría influir en el tamaño y rendimiento de una db. De no ser así nunca está demás...
http://firebird21.wordpress.com/2013/12/07/un-ejemplo-de-transacciones-mal-administradas/
Saludos.

Muy bueno.

fjcg02
13-12-2013, 22:56:37
Te recomiendo leas este artículo donde se toca el tema de transacciones mal administradas, lo que podría influir en el tamaño y rendimiento de una db. De no ser así nunca está demás...

http://firebird21.wordpress.com/2013/12/07/un-ejemplo-de-transacciones-mal-administradas/

Saludos.

No conocía esta página. Es muy buena, totalmente recomendable.

Saludos