Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #4  
Antiguo 23-06-2010
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.671
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Cita:
Empezado por Vlady Ver Mensaje
cual de las soluciones es la mas conveniente
Si lo haces por eliminar espacio... ninguna !!!

Como te comenté antes, el aumento del tamaño de la base de datos es normal porque trabaja con transacciones, estas se quedan almacenadas aunque ya se hayan realizado. La única forma de "limpiarla" es haciendo un backup/restore.
Pero, realmente no hace falta, da igual si la BD ocupa más, no afecta para nada su rendimiento. Las BD de mis clientes (donde trabajo) superan todas los 500 Mb, el tamaño medio está por encima de 1 Gb, y algunos han sobrepasado ya los 20 Gb. Hacen backup todos los días automáticamente y una vez por semana (los fines de semana) hacen un backup/restore. Todo automáticamente. Ninguno se queja del rendimiento.

Cita:
Empezado por Vlady
1. Desactivar los indices y volver a activarlos (como se hace desde delphi).
2. Recalculando sus estadisticas (como se hace desde delphi).

Para recalcular las estadísticas (index selectivity) para los planes, que no tiene nada que ver con el tamaño de la BD, algo así:

Código Delphi [-]
procedure TfrmRecalcularPlanes.btAceptarClick(Sender: TObject);
begin
//  inherited;
    if caiMensajeConfirmacion('¿Desea recalcular las estadísticas de uso de índices?' ) <> mrYes then
        exit;
    btAceptar.Enabled := false;
    btCancelar.Enabled := false;
    //
    try
        with qrConsulta do
        begin
            Close;
            SelectSQL.Text := 'Select * from RDB$INDICES where RDB$STATISTICS is not null';
            Open;
            Last;
            pbProgreso.Max := qrConsulta.RecordCount;
            First;
        end;
        while not qrConsulta.Eof do
        begin
            qrSql.Close;
            qrSql.Sql.Text := 'Set statistics index '+qrConsulta.FieldByName('RDB$INDEX_NAME').AsString;
            qrSql.ExecQuery;
            //
            qrConsulta.Next;
            pbProgreso.StepIt;
        end;
        //
    finally
        pbProgreso.Position := 0;
        btCancelar.Enabled := true;
    end;
    caiMensajeInformacion('Proceso concluido');
    close;
end;

Para activar o desactivar todos los índices, algo así:

Código:
  Para desactivar todos  los índices:

  UPDATE rdb$indices
    SET rdb$index_inactive = 1

  Para activar todos  los índices:

  UPDATE rdb$indices
    SET rdb$index_inactive = 0
Responder Con Cita
 


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
Recompilar Exodus fide_uci Varios 45 08-04-2010 00:38:53
Activar todos los indices erickperez6 Firebird e Interbase 1 04-03-2010 16:21:10
Recompilar vcl.bpl - bug #9344 juanmdq Varios 0 26-06-2008 13:45:45
Recompilar componente yomismo24 C++ Builder 0 02-10-2007 19:00:59
Activar/Desactivar TODOS los índices abel Firebird e Interbase 2 28-11-2003 15:11:08


La franja horaria es GMT +2. Ahora son las 08:11:27.


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