Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-08-2008
ANDRES86 ANDRES86 is offline
Miembro
 
Registrado: mar 2007
Posts: 16
Poder: 0
ANDRES86 Va por buen camino
Optimizar tablar en Firebird

Hola a todos, tengo un problemita, estoy tratando de desfragmentar una tabla en feribird, y cuando ejecuto la sentencia:

Código SQL [-]
 OPTIMIZE TABLE nombre_tabla

me aperece un error, operador no reconocido, tambien intente con ANALYZE TABLE, y me dio el mismo.

Alguien sabe como puedo desfragmentar una tabla en firebird, utlizo delphi 7 y firebird 1.5.

gracias de antemano.
Responder Con Cita
  #2  
Antiguo 04-08-2008
Avatar de RolphyReyes
RolphyReyes RolphyReyes is offline
Miembro
 
Registrado: ago 2004
Ubicación: Santo Domingo
Posts: 285
Poder: 20
RolphyReyes Va por buen camino
Smile

Saludos.

Hasta donde tengo entendido en FB no existe sentencia alguna para lo que deseas realizar, lo que si puedes hacer es un Backup/Restore y esto "desfragmenta" todo.
__________________
Gracias,
Rolphy Reyes
Responder Con Cita
  #3  
Antiguo 05-08-2008
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Para optimizar una base Firebird puedes utilizar esto que he sacado de aquí:

Código SQL [-]
CREATE PROCEDURE SPACTUALIZARINDICES 
AS
DECLARE VARIABLE NOMBRE VARCHAR(31);
Begin
  For Select RDB$Index_Name From RDB$Indices Into :Nombre Do
    Execute Statement 'Set Statistics Index ' || :Nombre;
End

Esto recalcula la selectividad de los índices. (es bueno para que las consultas hagan uso de un buen PLAN)

No se de nada que haga una "defragmentación de tablas".

De todos modos:

Si tu servidor es Windows, realiza una defragmentación del disco cada noche.
Haz un backup y restore antes de hacer algún proceso masivo que vaya a hacer muchos cambios en la base.
Cada tanto haz un backup y restore de la base de datos.
Cada noche haz un backup para que haga un Garbaje collection cuando no hay nadie conectado. (o por lo menos un GFIX -SWEEP)

Para ver como está la base de datos puedes utilizar el GSTAT -H:
Se puede utilizar aunque haya clientes conectados.
Código:
WINDOWS
"C:\Archivos de programa\Firebird\Firebird_1_5\bin\gstat" -h basededatos.fdb -user SYSDBA -pass masterkey
LINUX
/opt/firebird/bin/gstat -h /bases/basededatos.fdb

Database "/bases/basededatos.fdb"

Database header page information:
        Flags                   0
        Checksum                12345
        Generation              11429
        Page size               4096
        ODS version             10.1
        Oldest transaction      11415
        Oldest active           11416
        Oldest snapshot         11415
        Next transaction        11423
        Bumped transaction      1
        Sequence number         0
        Next attachment ID      0
        Implementation ID       19
        Shadow count            0
        Page buffers            0
        Next header page        0
        Database dialect        1
        Creation date           Jan 29, 2008 21:10:28

    Variable header data:
        Sweep interval:         0
        *END*
La diferencia entre "Oldest Active" y "Next Transaction" es lo importante. Son las transacciones abiertas que tienes en ese momento. En este ejemplo 7 Transacciones abiertas. Si superas las 10.000, puede que tu programa no utilice las transacciones correctamente.

Para limpiar transacciones puedes hacer lo siguiente:
Se puede hacer con clientes conectados pero tardará bastante más.
Código:
WINDOWS
"C:\Archivos de programa\Firebird\Firebird_1_5\bin\gfix" -sweep basededatos.fdb -user SYSDBA -pass masterkey
LINUX
/opt/firebird/bin/gsfix -sweep /bases/basededatos.fdb

Última edición por duilioisola fecha: 05-08-2008 a las 11:51:53.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
optimizar codigo acrophet Varios 5 16-01-2011 23:28:39
Optimizar con MySql whatson Conexión con bases de datos 2 23-01-2008 04:41:27
optimizar base de datos firebird MaTuR Firebird e Interbase 2 14-09-2006 19:37:03
Optimizar Consulta en Firebird AGAG4 Firebird e Interbase 14 10-01-2006 02:11:30
Optimizar Paradox en red Sick boy Conexión con bases de datos 0 26-02-2005 13:31:48


La franja horaria es GMT +2. Ahora son las 22:29:07.


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