![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Atencion, mas informacion he puesto esta parte de codigo.
Resumo, lo que hace es mirar el tamaño de la base de datos antes del commitretaining, despues lo ejecuta y vuelve a mirar el tamaño. Luego almacena los tamaños en un fichero txt. Y este es el fichero obtenido despues de varias grabaciones. Antes: 000040050688 -> Despues: 000040050688 = Incremento : 000000000000 Antes: 000040050688 -> Despues: 000040050688 = Incremento : 000000000000 Antes: 000040050688 -> Despues: 000040050688 = Incremento : 000000000000 Antes: 000040050688 -> Despues: 000040050688 = Incremento : 000000000000 Antes: 000040050688 -> Despues: 000040050688 = Incremento : 000000000000 Antes: 000040050688 -> Despues: 000040050688 = Incremento : 000000000000 Antes: 000040050688 -> Despues: 000040050688 = Incremento : 000000000000 Antes: 000040050688 -> Despues: 000040050688 = Incremento : 000000000000 Antes: 000040050688 -> Despues: 000040050688 = Incremento : 000000000000 Antes: 000040050688 -> Despues: 000040050688 = Incremento : 000000000000 Antes: 000040050688 -> Despues: 000040050688 = Incremento : 000000000000 Antes: 000040050688 -> Despues: 000040050688 = Incremento : 000000000000 Antes: 000040050688 -> Despues: 000040050688 = Incremento : 000000000000 Antes: 000040050688 -> Despues: 000040050688 = Incremento : 000000000000 Antes: 000040050688 -> Despues: 000040050688 = Incremento : 000000000000 Antes: 000040050688 -> Despues: 000040050688 = Incremento : 000000000000 Antes: 000040050688 -> Despues: 000040050688 = Incremento : 000000000000 Antes: 000040050688 -> Despues: 000040058880 = Incremento : 000000008192 Antes: 000040058880 -> Despues: 000041844736 = Incremento : 000001785856 Antes: 000041844736 -> Despues: 000043622400 = Incremento : 000001777664 Antes: 000043622400 -> Despues: 000045404160 = Incremento : 000001781760 Antes: 000045404160 -> Despues: 000047181824 = Incremento : 000001777664 Antes: 000047181824 -> Despues: 000048963584 = Incremento : 000001781760 Antes: 000048963584 -> Despues: 000050741248 = Incremento : 000001777664 Antes: 000050741248 -> Despues: 000052523008 = Incremento : 000001781760 Antes: 000052523008 -> Despues: 000054300672 = Incremento : 000001777664 Antes: 000054300672 -> Despues: 000056082432 = Incremento : 000001781760 Antes: 000056082432 -> Despues: 000057860096 = Incremento : 000001777664 Antes: 000057860096 -> Despues: 000059641856 = Incremento : 000001781760 Antes: 000059641856 -> Despues: 000061419520 = Incremento : 000001777664 Antes: 000061419520 -> Despues: 000063201280 = Incremento : 000001781760 Antes: 000063201280 -> Despues: 000064978944 = Incremento : 000001777664 Antes: 000064978944 -> Despues: 000066760704 = Incremento : 000001781760 Antes: 000066760704 -> Despues: 000068538368 = Incremento : 000001777664 Antes: 000068538368 -> Despues: 000070320128 = Incremento : 000001781760 Antes: 000072101888 -> Despues: 000072101888 = Incremento : 000000000000 Antes: 000072101888 -> Despues: 000073883648 = Incremento : 000001781760 Antes: 000073883648 -> Despues: 000075665408 = Incremento : 000001781760 Antes: 000075665408 -> Despues: 000077447168 = Incremento : 000001781760 Antes: 000077447168 -> Despues: 000079224832 = Incremento : 000001777664 Antes: 000079224832 -> Despues: 000081006592 = Incremento : 000001781760 Antes: 000081006592 -> Despues: 000082788352 = Incremento : 000001781760 Antes: 000082788352 -> Despues: 000084570112 = Incremento : 000001781760 Antes del commitretaining se realiza el post de 3 tablas. He probado a eliminar 2 y dejar solamente un post y el resultado es el mismo, solo que al principio en vez de haber n registros que no incrementan tamaño han habido n*3 registros que no incrementan. Luego todo igual. Última edición por dec fecha: 12-09-2006 a las 10:34:43. |
|
#2
|
||||
|
||||
|
Ahora vemos que la base de datos no crece de tajo... como se había creido al principio.
Sigo creyendo que el commit retaining tiene algo que ver en este caso... pero no logro imaginar cómo, suponiendo que tenes un tamaño de página de 4K, el sistema se dispara 436 páginas solamente después de insertar 3 registros. Si no queres hacer cambios en el commit, yo probaría poniendo un tamaño de página mas pequeño... quizas eso ayude. Hasta luego. ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
#3
|
|||
|
|||
|
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? |
|
#4
|
||||
|
||||
|
Cita:
Cita:
¿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:
Hasta luego. ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
#5
|
|||
|
|||
|
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? |
|
#6
|
||||
|
||||
|
Cita:
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 |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
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 |
|