Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #21  
Antiguo 12-09-2006
atani123 atani123 is offline
Miembro
 
Registrado: jul 2006
Posts: 63
Poder: 18
atani123 Va por buen camino
He podido descubrir mas cosas.
Uno de los registro que graba supongamos que tiene la siguiente estructura
Numero, Blob, Blob, etc campos.

Pues hacia lo siguiente

Tabla.edit;
tabla[ 'Numero'] := tabla[ 'Numero'] + 1;
Tabla.Post;


Hace las inserciones en otros ficheros.
Realiza el commitretaining.

Pues he comentado la primera parte donde incrementa un contador, y no ha vuelto a pasar. Todo funciona ok. Resulta que los campos blob uno es una hoja excel y el otro un grafico bmp, que bien bien podrian ocupar esas 460 paginas * 4096 bytes.

El problema sigo diciendo que es un bug de interbase, (aunque de todas formas debo reconocer que la programacion no es correcta. Tambien decir que yo jamas lo hubiera hecho asi, pero mi antecesor lo dejo asi y yo solo modifico lo que no funciona)

Bug de interbase, da la sensacion de que crea un registro nuevo para cada Edit que se realiza. Despues de realizar 200 edits, la base de datos tiene un tamaño impresionante y cuando realmente se realizar un commit (cerramos la
base de datos) graba la ultima modificacion y todo lo demas es en blanco.

No se, que opinais?
Responder Con Cita
  #22  
Antiguo 12-09-2006
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Cita:
Empezado por atani123
Resulta que los campos blob uno es una hoja excel y el otro un grafico bmp, que bien bien podrian ocupar esas 460 paginas * 4096 bytes.
Entonces, no hay nada que hablar... el crecimiento de la base de datos es el normal...

Cita:
Empezado por atani123
Bug de interbase, da la sensacion de que crea un registro nuevo para cada Edit que se realiza.
No quedamos que no habían updates... solo inserts?
¿a que te referís con "cada edit que se realiza"?

Tengo la sensación que no nos has contado realmente como funciona el proceso...

Cita:
Empezado por atani123
Despues de realizar 200 edits, la base de datos tiene un tamaño impresionante y cuando realmente se realizar un commit (cerramos la
base de datos) graba la ultima modificacion y todo lo demas es en blanco.
Me gustaría también que me expliques que queres decir con esto último, en otras palabras, porque por ahora me siento perdido...

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #23  
Antiguo 13-09-2006
atani123 atani123 is offline
Miembro
 
Registrado: jul 2006
Posts: 63
Poder: 18
atani123 Va por buen camino
Tienes razon, me equivoque al dar toda la informacion. Resulta que hay una tabla con dos blob uno es un excel y el otro un grafico.

Se realiza un bucle donde lo que se hace es modificar un campo numerico de la tabla citada y a parte añadir 3 o 4 registros en otra tabla.

Al final del bucle se realiza el commitretaining.

Lo que no entiendo es el incremento. Ya que la tabla con el registro grande no se añade nada, unicamente se modifica.

¿Hay alguna explicacion para esto?
Responder Con Cita
  #24  
Antiguo 13-09-2006
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Cita:
Empezado por atani123
Lo que no entiendo es el incremento. Ya que la tabla con el registro grande no se añade nada, unicamente se modifica.

¿Hay alguna explicacion para esto?
Firebird crea una nueva versión del registro cada vez que modificas. Supongo, porque ahora no lo tengo claro, que esta nueva versión está incluyendo nuevas versiones de los blob's también... pero hará falta revisar los manuales para ver si es cierto.

Sigo pensando que realizar un commit en lugar de un commit retaining tendrá un buen efecto. Después de esto yo reduciría el sweep interval de esa base a unas 20 o 30 transacciones, suponiendo que ahora si nos has dicho la forma real de uso de la base.

Otra solución, podría ser insertar los blobs en un registro que no sufra modificaciones, en una relación 1 a 1 con el registro que si las sufre.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Con que sigo? serfap Varios 6 12-06-2006 18:02:58
Sigo con problemas con los indices Antuan Tablas planas 6 10-10-2005 20:52:11
sigo con MDI pablo OOP 2 27-02-2005 17:42:15
Sigo con mis preguntitas!!! Critter Varios 1 15-12-2004 21:44:05
sigo con la duda ? saps Conexión con bases de datos 1 28-08-2003 11:22:27


La franja horaria es GMT +2. Ahora son las 03:15:31.


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
Copyright 1996-2007 Club Delphi