Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Solay

O interbase incha muito rápido

Recommended Posts

Tenho um sistema no micro do representantes para eles digitarem pedidos e esses pedidos são enviados para a matriz por arquivo texto. O representante recebe atualizações de clientes e outras tabelas da matriz por arquivo texto também.O problema é que conforme essa sincronização vai acontecendo o interbase vai inchando e depois de umas 5 sincronizações de 3 mb ele passa para 10 mb......Como eu posso resolver esse problema???......Porque ele incha tanto e tão rápido?????

Compartilhar este post


Link para o post
Compartilhar em outros sites

Informe a estrutura das suas tabelas e os tipos de cada campo.

Os parametros de criação do arquivo GDB, como Page Size, também são importantes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá ProgMuito obrigada pela ajuda.Um exemplo das tabelas, todas foram criadas neste estilo.CREATE TABLE "PED_VENDA" ( "NR_PEDCLI" VARCHAR(12), "NOME_ABREV" VARCHAR(12), "COD_ESTABEL" VARCHAR(3), "NR_PEDREP" VARCHAR(12), "DT_EMISSAO" TIMESTAMP, "COD_COND_PAG" SMALLINT, "NR_TABPRE" VARCHAR(8), "NR_TAB_FINAN" SMALLINT, "PERC_DESCTAB" DOUBLE PRECISION, "PERC_DESCO1" DOUBLE PRECISION, "PERC_DESCO2" DOUBLE PRECISION, "COND_REDESPA1" VARCHAR(76), "CIDADE_CIF" VARCHAR(25), "COD_DES_MERC" SMALLINT, "PER_DES_ICMS" DOUBLE PRECISION, "COD_TRANSP" INTEGER, "COD_REP" INTEGER);´Para criar o banco coloque PAGE_SIZE 4096, usuário, senha e o nome do banco, não passei mais nenhum parametro na sua criação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma alteração que pode amenizar o aumento do arquivo é mudar os campos DOUBLE PRECISION para DECIMAL(10, 2) (para duas casas decimais, se necessário, aumentar a precisão do campo, tipo (11, 2) ou (12, 3) ).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para o caso de que no futuro alguem venha a ter o mesmo problema que eu tive com o interbase, vou colocar aqui as possíveis soluções que eu encontrei e que outras pessoas me falaram.Opções para amenizar o crescimento do interbase a cada sincronização.·Executar Backup e Restore do banco interbase.·Desativar os Índices, executar a rotina de sincronização e ativá-los novamente, índice por índice de cada tabela. ·Alterar todos os campos Double Precison para Decimal (10,2) aumentando a precisão dos campos.·Trocar a forma de conexão ao banco de dados.·Trocar os componentes TIBTable e TIBQuery na sincronização por TIBClientDataSet e utilizar instruções SQL. “Criar um Script SQL para rodar a importação, desativar e reativar os índices tudo dentro de uma única transação”.Se todas essas opções falharem......troque de banco de dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Apenas algumas considerações:

 

Desativar e reativar indices pode ser um processo bem demorado, dependendo da quantidade de registros.

Talvez, se este fosse um processo externo, em horário especifico, a carga e tempo total do processo de importação tenha um ganho significativo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.