[firebase-br] ApplyUpdates(0) Lento
Sandi Trentin
sandi em sysmo.com.br
Seg Maio 23 15:00:17 -03 2005
Utilizado para desenvolvimento Kylix/Delphi (CLX) e banco de dados
Firebird 1.5,
estou enfrentando problemas com a velocidade dos ApplyUpdates(0),
(TSqlDataSet, TDataSetProvider, TClientDataSet).
mas somente no Linux,
O que acontece é o seguinte :
Em uma aplicação são atualizado 8000 registros em uma tabela e inseridos
os mesmos 8000 registros em um segunda tabela.
A chave destes registros, no momento da gravação estão armazenados em um
TStringList, que são lidos, na ordem que estão armazenados no
TStringList, e juntamente com outras informações anteriormente
informadas pelo usuário e outras calculadas pela aplicação são
atualizados/gravados no banco de dados em duas tabelas o tempo para
efetuar o processo, que após disparada não tem interferência do usuário
até ser finalizado leva entre 8 a 10 minutos no WINDOWS e entre 50 a 60
minutos no LINUX.
- Estiver verificando em emails anteriores na lista sobre o assunto, mas
não encontrei uma solução para esta diferença de velocidade entre o
Linux/Windows.
- Sobre o VendorLib no dbxdrivers, tanto no Linux quanto no Windows, não
obtive diferença de velocidade alterando entre gds32 e fbclient.
- Os 8000 registros citados foram utilizados para testes, em testes com
quantidades menores também foi detectado essa difetença entre a
aplicação nos dois SO's
- Quanto ao TStringList também foi detectado uma diferença no tempo de
gravação mas não de leitura entre a aplicação nos dois SO's que já foi
sanada, utilizado "TStringList.Sorted=true", mas não foi encontrado
diferença no tempo de leitura do TStringList.
------------------------
Sandi Trentin
Mais detalhes sobre a lista de discussão lista