Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Problemas con el IBServer (https://www.clubdelphi.com/foros/showthread.php?t=425)

jmbarrio 14-05-2003 15:54:43

Problemas con el IBServer
 
Hola a todos-as, tengo un problema con mi base de datos, actualmente ocupa unos 150Mb, el problema es que durante un tiempo cualquier consulta que hagas la hace de manera rápida, pero al cabo de un tiempo le cuesta una eternidad, cuando esto ocurre el IBserver esta consumiendo practicamente el 100% de la CPU, normalmente reinicio el servidor y me resuelve temporalmente el problema.
Al servidor donde se encuentra la base de datos, acceden varios ordenadores, realizando consultas con una frecuencia de 5sg.

Como puedo solucionar el problema sin tener que reiniciar el servidor?

Muchas gracias.

__cadetill 14-05-2003 16:00:09

Hola

cuando dices "un tiempo", a que te refieres, a horas, dias,....

Si es mayor a un dia, te aconsejaria que planificaras un proceso por la noche (o cuando estubieras seguro que nadie trabaja con la BD) que desactivara los indices y los volviera a activar (se recrearian) y hacer un backup/restore de la BD

Ya nos contaras

jmbarrio 14-05-2003 17:42:52

Cita:

Posteado originalmente por cadetill
Hola

cuando dices "un tiempo", a que te refieres, a horas, dias,....

Si es mayor a un dia, te aconsejaria que planificaras un proceso por la noche (o cuando estubieras seguro que nadie trabaja con la BD) que desactivara los indices y los volviera a activar (se recrearian) y hacer un backup/restore de la BD

Ya nos contaras


Normalmente aguanta mes o mes y medio, como se desactivan y activan los indices.

Lo del backup y restore ya lo he hecho otras veces, es normal que para un backup de 150mb le cueste entre 5 y 10min?
Una vez que se hace el restore, hay que hacer un sweep a la base de datos. Muchas gracias

__cadetill 14-05-2003 18:21:39

El Backup/Restore la verdad es que te va algo lento, pero claro, tambien depende del ordenador que tengas. A mi me tarda menos de 5 min en una BD de 100-120 MB

El otro tema, el de los indices.

Para activar-desactivar los indices de una BD, puedes hacer una contulta SQL sobre la tabla de sistema RDB$INDICES, pero claro, no tienes que modificar todos los registros de la misma, solo los que a ti te interesan que serian (mas o menos) los que te devolveria la siguiente sentencia SQL

Código:

            select *
            from RDB$INDICES
            where RDB$SYSTEM_FLAG IS NULL and
                  RDB$FOREING_KEY IS NULL'

(no se si me dejo alguna condicion, si es asi, rectificarme porfa ;) )

y para activar/desactivar solo haria falta hacer algo asi para cada uno de los registros devueltos por la consulta anterior

Código:


    // Activar
    alter index NombreIndice ACTIVE

    // Desactivar
    alter index NombreIndice INACTIVE

Espero que te sirva

jmbarrio 14-05-2003 18:35:59

Cita:

Posteado originalmente por cadetill
El Backup/Restore la verdad es que te va algo lento, pero claro, tambien depende del ordenador que tengas. A mi me tarda menos de 5 min en una BD de 100-120 MB

El otro tema, el de los indices.

Para activar-desactivar los indices de una BD, puedes hacer una contulta SQL sobre la tabla de sistema RDB$INDICES, pero claro, no tienes que modificar todos los registros de la misma, solo los que a ti te interesan que serian (mas o menos) los que te devolveria la siguiente sentencia SQL

Código:

            select *
            from RDB$INDICES
            where RDB$SYSTEM_FLAG IS NULL and
                  RDB$FOREING_KEY IS NULL'


(no se si me dejo alguna condicion, si es asi, rectificarme porfa ;) )

y para activar/desactivar solo haria falta hacer algo asi para cada uno de los registros devueltos por la consulta anterior

Código:


    // Activar
    alter index NombreIndice ACTIVE

    // Desactivar
    alter index NombreIndice INACTIVE

Espero que te sirva

La primera sentencia sql me da error de columna desconocida
RDB$FOREING_KEY

kinobi 14-05-2003 18:38:29

Hola,

Cita:

Posteado originalmente por jmbarrio
Lo del backup y restore ya lo he hecho otras veces, es normal que para un backup de 150mb le cueste entre 5 y 10min?
Como comenta Cadetill, puede ser normal. Depende también, entre otras cosas, del tipo de información que contenga y de la complejidad del modelo de datos (índices, claves ajenas, restricciones de integridad y de valores, ...), cuanto más compleja más tiempo.

Cita:

Posteado originalmente por jmbarrio
Una vez que se hace el restore, hay que hacer un sweep a la base de datos. Muchas gracias
No, no es necesario hacer el sweeping. El backup/restore inicia los contadores de transacciones y el versionado de registros. Casi seguro que el tiempo que comentas, mes o mes y medio (depende de la actividad que tenga tu base de datos en cuanto a actualizaciones), sea suficiente para que el multiversionado de registro degrade el rendimiento de acceso a la base de datos.

Por cierto, con el backup/restore ya se reconstruyen los índices. En el backup sólo se guarda la descripción de los índices, pero no sus valores; es el proceso de restore, en función de los datos que guarde el backup, el que debe volver a reconstruirlos.

Saludos.

__cadetill 14-05-2003 18:44:30

Cita:

Posteado originalmente por jmbarrio
La primera sentencia sql me da error de columna desconocida
RDB$FOREING_KEY

cierto, me equivoque al teclear, no es RDB$FOREING_KEY sino RDB$FOREIGN_KEY, pero como comenta el amigo kinobi, si haces backup/restore amenudo, no necesitaras hacer la activacion/desactivacion de indices


La franja horaria es GMT +2. Ahora son las 09:53:42.

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