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)
-   -   Aumento desproporcionado del tamaño de las bases de datos en FireBird (https://www.clubdelphi.com/foros/showthread.php?t=84828)

insoft 11-12-2013 13:53:51

Aumento desproporcionado del tamaño de las bases de datos en FireBird
 
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

Cita:

/******************************************************************************/
/*** 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...administradas/

Saludos.

Casimiro Notevi 13-12-2013 20:31:56

Cita:

Empezado por Young (Mensaje 470755)
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...administradas/
Saludos.

Muy bueno.

fjcg02 13-12-2013 22:56:37

Cita:

Empezado por Young (Mensaje 470755)
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...administradas/

Saludos.

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

Saludos


La franja horaria es GMT +2. Ahora son las 07:23:37.

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