FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
al hacer update la base de datos crece sin parar
Hola
tengo el siguiente problema con firebird tengo una aplicación , la cual monitoriza estados de equipos (unos 100) , estos equipos cambian sus estado constantemente (y muy rapidamente) . la aplicación lo que hace es registrar estos cambios en la base de datos actualizando sus campo de estados en una tabla llamada equipos. Pero la base de datos , crece y crece sin parar , simplemente haciendo UPDATE EQUIPOS SET SET ESTADO1=XXX ,ESTADO2=XXX ,ESTADO3=XXX WHERE EQUIPOS.IDEQUIPO=XXX. el problema es que al cabo de una semana , la base de datos ha crecido considerablemente (unos 300mb), y no tiene porque , ya que tan solo estoy actualizando datos y no insertando. las transacciones las inicio y finalizo correctamente (uso mdolib) , he probado con firebird 1.5 y firebird 2.0 , y el resultado es el mismo , la base de datos sigue creciendo sin parar. La unica forma que tengo para poder reducir el tamaño es haciendo un backup y un restore , pero es algo que no puedo hacer , ya que es un sistema critico el cual no puedo parar a mi antojo. es normal que la base de datos crezca al hacer update ? , alguna solucion ? , o me he equivocado al elejir firebird como base de datos ? saludos |
#2
|
|||
|
|||
Cita:
* Oldest transaction * Oldest active * Oldest snapshot * Next transaction * Sweep interval Comprueba si haciendo un sweep la BBDD ya no crece. |
#3
|
|||
|
|||
devuelve esto
Database "C:\BD\Acpas.fdb" Database header page information: Flags 0 Checksum 12345 Generation 215744 Page size 4096 ODS version 10.1 Oldest transaction 54 Oldest active 55 Oldest snapshot 47 Next transaction 215738 Bumped transaction 1 Sequence number 0 Next attachment ID 0 Implementation ID 16 Shadow count 0 Page buffers 0 Next header page 0 Database dialect 3 Creation date Jul 3, 2007 11:25:41 Attributes force write Variable header data: Sweep interval: 20000 *END* significa que hay transacciones no finalizadas ??. saludos. |
#4
|
|||
|
|||
Cita:
Revisa tu aplicación, prueba también con "Interbase Performance Monitor" en http://blogs.teamb.com/craigstuntz/a...ceMonitor.aspx |
#5
|
|||
|
|||
Bueno ... más que "pendientes" son transacciones que han dejado registros que ya no son válidos pero por "lo que sea" no se han podido eliminar con un sweep
|
#6
|
|||
|
|||
voy a probar con el performance monitor ese.
pero he revisado la aplicación , y no hay nada 'raro' , tan solo hago try query1.execsql Query1.transaction.commitretaining; Except queyr1.transaction.rollbackretainig; end; y los querys son simplemente updates. deberia hacer commit , en vez de commitretaining ?. por eso no hace sweeep automaticamente ?. la base de datos no tiene triggers ni procedimientos almacenados , simplemente tablas con sus primarykeys e indices. he probado ha forzar hacerler un sweep , y nada , las transacciones siguen estando ahi pendientes . el verdadero problema de todo esto , es que ademas de que la bd crece y crece , llega un momento que debe tener tantas transacciones por ahi perdidas que que la bd se espatarra , y el fbserver se pone al 100%. saludos. Última edición por tefots fecha: 18-07-2007 a las 09:52:23. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
como hacer que un tmediaplayer se reproduzca sin parar | Jan_polero | OOP | 15 | 10-10-2007 00:40:56 |
Mi base de datos crece sin motivo | aog | Firebird e Interbase | 5 | 12-02-2007 17:55:39 |
SQL UPDATE entre 2 tablas de Diferente base de datos | Luis Alberto | SQL | 1 | 11-11-2005 04:52:18 |
Problema al hacer un update en una tabla con datos de otra | Iseberiano | SQL | 3 | 08-06-2005 12:32:14 |
Update de base de datos | brandolin | Firebird e Interbase | 8 | 01-03-2005 23:45:48 |
|