Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-05-2003
jmbarrio jmbarrio is offline
Miembro
 
Registrado: may 2003
Posts: 65
Poder: 21
jmbarrio Va por buen camino
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.
Responder Con Cita
  #2  
Antiguo 14-05-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
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
Responder Con Cita
  #3  
Antiguo 14-05-2003
jmbarrio jmbarrio is offline
Miembro
 
Registrado: may 2003
Posts: 65
Poder: 21
jmbarrio Va por buen camino
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
Responder Con Cita
  #4  
Antiguo 14-05-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
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
Responder Con Cita
  #5  
Antiguo 14-05-2003
jmbarrio jmbarrio is offline
Miembro
 
Registrado: may 2003
Posts: 65
Poder: 21
jmbarrio Va por buen camino
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
Responder Con Cita
  #6  
Antiguo 14-05-2003
Avatar de kinobi
kinobi kinobi is offline
Miembro
 
Registrado: may 2003
Posts: 2.621
Poder: 24
kinobi Va por buen camino
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.
Responder Con Cita
  #7  
Antiguo 14-05-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
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
Responder Con Cita
Respuesta



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


La franja horaria es GMT +2. Ahora son las 11:40:16.


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