Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-09-2006
MrDominoTk MrDominoTk is offline
Registrado
 
Registrado: jun 2005
Posts: 9
Poder: 0
MrDominoTk Va por buen camino
Esquivar el problema

Lo que se me ocurre, es que tengas 365 Base de datos, es decir 1 para cada dia. y ademas tener Otra BD maestra con aglutine datos al finalizar cada dia. una vez traspasado el dia anterior la borras.

Salu2 desde Chile.




Cita:
Empezado por Casimiro Notevi
Por cierto, ¿tienes habilitada escritura asíncrona?, prueba a cambiarla a síncrona, para que no lo almacene en la "cache´" y escriba directamente los datos a disco, así, en teoría debería de ir aumentando de tamaño la base de datos poco a poco, en lugar de cuando se llena la "caché" que lo graba todo de golpe.

Código:
/opt/firebird/bin/gfix -write  sync -user SYSDBA -password masterkey /home/datos/basedatos.fdb
Responder Con Cita
  #2  
Antiguo 06-09-2006
atani123 atani123 is offline
Miembro
 
Registrado: jul 2006
Posts: 63
Poder: 21
atani123 Va por buen camino
  1. ¿Solamente ocurren inserciones o también ocurren actualizaciones de registros?
No ocurren inserciones ni actualizacion. Yo soy quien inserta registros, solamente 1 por minuto, no se modifica nada.
  1. ¿la base de datos tiene una sola tabla?
Tiene varias tablas, nada del otro mundo, alrededor de 12 tablas, pero solo se inserta en una, las demas son maestras.
  1. ¿cuantos índices?
Aprox. 3 por tabla.
  1. ¿hay mas usuarios conectados al sistema?
No, trabaja en local, solo se conecta 1 usuario el SYSDBA
  1. ¿hacen modificaciones
No. Esta preparado para poderlas realizar pero es un proceso automatico que solo inserta.

Mas o menos es esto, una estacion meteorologica que registra la temperatura cada minuto. Posteriormente se podra consultar y demas, pero de momento tiene un timer que cada minuto mira el valor de la sonda y lo registra. Despues borra todos los registros en que la fecha < fecha-2dias.
Responder Con Cita
  #3  
Antiguo 06-09-2006
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 30
jachguate Va por buen camino
Cita:
Empezado por atani123
Mas o menos es esto, una estacion meteorologica que registra la temperatura cada minuto. Posteriormente se podra consultar y demas, pero de momento tiene un timer que cada minuto mira el valor de la sonda y lo registra. Despues borra todos los registros en que la fecha < fecha-2dias.
Pues algo extraño debe haber... has hecho la prueba de registrar 1440 lecturas, pero no 1 cada minuto sino 1 cada segundo y ocurre lo mismo??

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
Responder Con Cita
  #4  
Antiguo 06-09-2006
Avatar de Paoti
Paoti Paoti is offline
Miembro
 
Registrado: may 2003
Ubicación: Monterrey. N.L., México
Posts: 612
Poder: 24
Paoti Va por buen camino
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
Responder Con Cita
  #5  
Antiguo 06-09-2006
aledieb aledieb is offline
Miembro
 
Registrado: jun 2005
Ubicación: Buenos Aires, Argentina
Posts: 147
Poder: 22
aledieb Va por buen camino
Solo una sugerencia, probaste utilizando directamente una sentencia sql con un query.

Código SQL [-]
insert into latabla (campo1,campo2) values (1,2)

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
Responder Con Cita
  #6  
Antiguo 07-09-2006
atani123 atani123 is offline
Miembro
 
Registrado: jul 2006
Posts: 63
Poder: 21
atani123 Va por buen camino
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.
Responder Con Cita
  #7  
Antiguo 07-09-2006
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 30
jachguate Va por buen camino
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
Responder Con Cita
  #8  
Antiguo 07-09-2006
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.676
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
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.

Última edición por Casimiro Noteví fecha: 07-09-2006 a las 08:51:46.
Responder Con Cita
  #9  
Antiguo 07-09-2006
atani123 atani123 is offline
Miembro
 
Registrado: jul 2006
Posts: 63
Poder: 21
atani123 Va por buen camino
Si, las tablas son Cero y CeroCar es un Master/Detail.

De todas formas yo lo he probado y me ha funcionado bien.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 19:26:42.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi