Fórum 4 min. p dar um Post em tabela volumosa #47132
01/10/2004
0
Amigo, ajudem-me com um problema.
Tenho uma tabela com 43200 registros mais ou menos, com uma chave primária de 5 campos dos 32 que existem nela e com indice para um campo que faz parte da chave primária.
Tanto no Delphi 5 quanto no Delphi 7 CLX, quando dou um Post e/ou ApplyUpdates no Query ou ClientDataSet o processamento demora quase 4 minutos, quando se conclui.
Alguém poderia me orientar a respeito de uma possível solução para melhorar a performance do programa com essa tabela?? Filtrar os registros não tem me adiantado..
Agradeço desde já a atenção.
Digaum
Rodsrabbit
Curtir tópico
+ 0Posts
01/10/2004
Aroldo Zanela
Você pode detalhar melhor alguns detalhes, como: Tipo e velocidade da rede, componentes de acesso aos dados, descrição do hardware?
Gostei + 0
01/10/2004
Rodsrabbit
No Delphi 5 uso o RXQuery, RXDBGrid e DataSource, no Delphi 7 CLX uso os componentes da DataAccess + o SqlDataSet da dbExpress.
Gostei + 0
01/10/2004
Afarias
Outra coisa, vc tem triggers nessa tabela?
T+
Gostei + 0
01/10/2004
Rodsrabbit
Estive pensando sim em montar o SQL dentro do Delphi e executar, mas isso daria um trabalho imenso pois nem todos os campos da tabela sao preenchidos, daí eu teria que prever todos os casos possíveis para os cadastros. E no caso dos updates / edits daria mais trabalho ainda.
:cry:
Gostei + 0
01/10/2004
Afarias
T+
Gostei + 0
14/10/2004
Isaiasbass
Eu uso IBUpdate no Delphi 7 e IB 6.0
Pra resolver, antes de qq insert abra a table com um sql q lhe retorne poucos registros ou nenhum, tipo: ´select * from Table1 where Codigo = 0´ , isso lhe trará uma resposta sem registro e o seu programa dará o insert e post como se fosse vazio. Tudo leve, nem parece q o Servidor tá lotado hehehe
Gostei + 0
15/10/2004
Afarias
Na verdade seu problema não era o INSERT mas a carga dos registros da base. Este é um ´equívoco´ muito comum principalmente para desenvolvedores q vem de gerenciadores de arquivo (como DBase) para sistemas C/S
T+
Gostei + 0
15/10/2004
Rodsrabbit
Foi criada uma trigger numa tabela relacionada, que é acionada ao alterar um campo dessa tabela. Quando todas as tabelas que tem chave estrangeira para essa que contém a trigger, dão um post, estranhamente a trigger é acionada, fazendo alteração em TODOS os registros de TODAS AS TABELAS RELACIONADAS. Serviço de eficiência de curto prazo executado por algum porquinho aqui da empresa rs...
Valeu pessoal, pela força.
Agora vou destroçar essa trigger mal feita e colocar isso no código, eh mais simples.
:o
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)