Fórum Clientdataset demora para carregar dados do banco #571914
01/12/2016
0
Eu mudo ele para 1000 ele fica até que rápido para abrir, mas quando eu filtro por código (aparece direto no form não no grid), ele chega até a travar o meu sistema.
O meu banco está com 6.000 cadastros de produtos.
DS.DataSet.Filtered := False; DS.DataSet.Filter := 'PROCOD = ' + EdtProcod.Text; DS.DataSet.Filtered := True;
Eles trava no |DS.DataSet.Filtered := True;|
Se eu colocar PacketRecords 5.000 ele demora para carregar o form e demora para carregar o filtro.
Já procurei mas ainda não achei a solução.
Já testei também colocar PacketRecords = 0. Para carregar somente o metadados, mas ele carrega rápido filtra rápido mas os campos voltam em branco.
André Franzoi
Curtir tópico
+ 0Post mais votado
01/12/2016
Jones Granatyr
Gostei + 2
Mais Posts
01/12/2016
Gutierry Pereira
Você ai tem dois problemas o primeiro o excesso de informação trafegado pela rede. Imagino que atualmente você tem apenas um usuário fazendo essa consulta, você esta depreciando recursos do banco de dados, imagina isso com dois 3 e agora com 100 usuario. alem de prejudicar outroas operações seu trafgo na rede será intenço.
segundo ponto vamos aqui supor que cada registro seu tenha 30Kb a cada 1000 registro você tem aproximadamente 3Mb de memoria ocupada, para seus 6000 serão 18 para 20Mb de memoria isso apenas para um cadastro de produtos.
Sua lentidão é por dois problemas, uma fazer tranaferencia de 20Mb na rede não é nada rapido. Outra apresentar isso em uma grid é lento devido ao loop que é feito no dataSet , percorrendo 6mil registro e fazendo todo processo de apresentar.
Espero ter ajudado.
Gostei + 1
01/12/2016
André Franzoi
eu sou novo no delphi e estou com bastante problema com isso
Gostei + 0
01/12/2016
Jones Granatyr
Quais componentes você está utilizando? O ideal é você ter uma query com um select mais ou menos do tipo
select * from pessoas where nome like :nome
O ":nome" com os dois pontos é um parâmetro, que o usuário vai digitar na tela e será passado para a consulta. Desta forma, serão retornados somente os registros que se encaixam nessa condição. Outra detalhe é que não é uma boa prática utilizar o asterisco (*) pra retornar os dados
Gostei + 0
02/12/2016
André Franzoi
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)