![]() |
![]() |
| 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
|
||||
|
||||
|
Cita:
Has registrado el tiempo que tarda cada inserción? Si todas van normales, debe haber una en particular que tome mucho tiempo... hacer crecer la base de 30Mb a 2Gb no es cosa de un segundo... Es normal que una base de datos de firebird crezca mas allá de lo que se espera originalmente... pero el crecimiento en tu caso me parece descabellado. Se me ocurre que lances periodicamente un gfix -sweep sobre la base, pero si no hay modificaciones a los registros (updates), no hay razón para que haya basura en la base... solamente después del borrado. ¿cómo es el manejo de transacciones? ¿abris y cerras una transacción para insertar cada registro? ¿commit o commit retaining? Hasta luego. ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
#2
|
||||
|
||||
|
es una suposición:
es probable que la applicación comience una trasacción y no la cierre, y abra ora, así anidandolas, o usando commit retaining, con lo cual no se cierra y firebird necesita tener el estado de todas sus trasacciones.
__________________
Estudia y anda en la calle.... que asi serás el doble de listo que los demás... análisis de información análisis y diseño de sistemas Paoti Rios Reséndiz |
|
#3
|
|||
|
|||
|
Solo una sugerencia, probaste utilizando directamente una sentencia sql con un query.
Tal ves y solo tal ves sea un problema del componente que utilizas, por como hace la inserción del registro un ttable.
__________________
Suerte Alejandro |
|
#4
|
|||
|
|||
|
A ver, a las preguntas, efectivamente hay un registro que tarda muchisimo en grabarse, tanto que debo hacer un down del servidor, este es que que me da el saldo de los 30Mb a los 2Gb, (que por cierto es un registro normal y corriente y no siempre es el mismo).
Efectivamente, utilizo el componente TIBTable para hacer las inserciones y el TIBQuery para el borrado de registros. Despues de cada TIBTable.Post realizo un CommitRetaining. El PC que tiene el problema lo tengo a 700Km de distancia, por lo que lo que he hecho ha sido restaurar una imagen Ghost en un PC que tengo en casa con la misma configuracion que el de mi cliente, pero cosas de la vida, aqui no me pasa el error. El tiempo de las inserciones es normal, 1seg o menos aprox. Gracias de nuevo He probado metiendo un bucle infinito para añadir registros y nada, todo funciona OK. |
|
#5
|
||||
|
||||
|
No veo sentido a usar un TIBTable, ni un commit retaining (aunque no veo también por que esto pueda causar el problema en cuestión). Creo que podes usar un TIbSQL y seguir el consejo de aledieb en cuanto a simplemente lanzar un insert into. También creo que debieras hacer un commit, dado que no hay razón para mantener abierta la transacción durante tanto tiempo...
Hasta luego. ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
#6
|
|||
|
|||
|
El problema del commit es que me cierra la base de datos.
|
|
#7
|
||||
|
||||
|
El commit no cierra la base de datos. Si usas IBX, te cierra los datasets asociados, comportamiento normal de interbase/firebird, y defecto de las IBX, que lo dejan todo crudo, tal cual es.
Sin embargo, para las tablas lookups, podes tener otra transaccion de solo lectura, por ejemplo, y una transacción para el insert. Por otro lado, haciendolo con un TibSQL, como te sugerí antes, no hay nada que cerrar, pues este se ejecuta y listo. ![]() Hasta luego. ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
#8
|
||||
|
||||
|
Hola, atani123, hice un programita con un timer que inserta un registro cada minuto, datos aleatorios, con la base de datos que me enviaste. Lo puse en marcha ayer, miércoles por la mañana, y de momento va creciendo poquito a poquito, lo voy a dejar funcionando durante este largo fin de semana (aquí es fiesta mañana viernes).
El lunes te cuento. P.d.: si me dices exactamente qué tabla es en la que hay que insertar los registros, así hago una simulación lo más real posible con tu forma de trabajar, he elegido una tabla al azar, una que no tenía ningún registro. La prueba es con Delphi 7 + FIBplus + Firebird 1.5 en servidor Suse Linux.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal Última edición por Casimiro Noteví fecha: 07-09-2006 a las 09:51:46. |
|
#9
|
|||
|
|||
|
Si, las tablas son Cero y CeroCar es un Master/Detail.
De todas formas yo lo he probado y me ha funcionado bien. |
|
#10
|
||||
|
||||
|
Cita:
Edito: Ah, ok, no había leído tu mensaje anterior.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Con que sigo? | serfap | Varios | 6 | 12-06-2006 19:02:58 |
| Sigo con problemas con los indices | Antuan | Tablas planas | 6 | 10-10-2005 21:52:11 |
| sigo con MDI | pablo | OOP | 2 | 27-02-2005 18:42:15 |
| Sigo con mis preguntitas!!! | Critter | Varios | 1 | 15-12-2004 22:44:05 |
| sigo con la duda ? | saps | Conexión con bases de datos | 1 | 28-08-2003 12:22:27 |
|