Localização muito lenta.
Tenho um sistema que está instalado numa empresa de venda de livros e roda em três máquinas, uma servidora e duas estações.
A busca pelos dados acontece da seguinte forma:
No código de um edit digito o seguinte:
dm_.QryCli15.Close;
dm_.QryCli15.SQL.Clear;
dm_.QryCli15.SQL.Add(´Select * from Cliente15 WHERE Cidade_UF like ´+´´´´+´¬´+EdChave.Text+´¬´+´´´´);
dm_.QryCli15.Open;
E um botão completa a tarefa levando os dados filtrados para o Quick Report.
Acontece que no servidor esta pesquisa é realizada simultaneamente à digitação dos dados, ou seja, vou digitando e os dados vão sendo localizados.
Já nas estações, digito a primeira letra, 10 segundo depois é que eu posso digitar a segunda.
Já experimentei trocar o sistema de máquina e acontece a mesma coisa. A máquina que possui o sistema instalada faz a consulta mais rápido e os outros não.
Se alguém puder me ajudar nesta dúvida, receba meu sincero obrigado!!!
A busca pelos dados acontece da seguinte forma:
No código de um edit digito o seguinte:
dm_.QryCli15.Close;
dm_.QryCli15.SQL.Clear;
dm_.QryCli15.SQL.Add(´Select * from Cliente15 WHERE Cidade_UF like ´+´´´´+´¬´+EdChave.Text+´¬´+´´´´);
dm_.QryCli15.Open;
E um botão completa a tarefa levando os dados filtrados para o Quick Report.
Acontece que no servidor esta pesquisa é realizada simultaneamente à digitação dos dados, ou seja, vou digitando e os dados vão sendo localizados.
Já nas estações, digito a primeira letra, 10 segundo depois é que eu posso digitar a segunda.
Já experimentei trocar o sistema de máquina e acontece a mesma coisa. A máquina que possui o sistema instalada faz a consulta mais rápido e os outros não.
Se alguém puder me ajudar nesta dúvida, receba meu sincero obrigado!!!
Pro-luck
Curtidas 0
Respostas
Aroldo Zanela
04/11/2003
Colega,
Qual é o sistema de banco de dados? Se for desktop (xBase, Paradox) você pode melhorar um pouco a performance forçando a criação dos arquivos temporários na máquina local para evitar overhead na rede. Para aplicações Client/Server com SGBDs, adicione um índice para a coluna pesquisada.
Qual é o sistema de banco de dados? Se for desktop (xBase, Paradox) você pode melhorar um pouco a performance forçando a criação dos arquivos temporários na máquina local para evitar overhead na rede. Para aplicações Client/Server com SGBDs, adicione um índice para a coluna pesquisada.
GOSTEI 0
Pro-luck
04/11/2003
Vc sugeriu-me que forçasse a criação de arquivos temporários na máquina local para evitar o overhead da rede. Se não for muito abuso de sua boa vontade, pode me dizer como se faz isso? Estou vendo mesmo fazendo um sistema grande como o que eu fiz, só estou engatinhando no Delphi ainda.
Certo de sua ajuda, antecipadamente agradeço.
Certo de sua ajuda, antecipadamente agradeço.
GOSTEI 0
Fred
04/11/2003
Na minha concepção um sistema client/server ou funcionando em rede nunca deveria ter uma pesquisa como esta que voce esta fazendo, esta pesquisa é uma ´BOMBA´ para a REDE, pois a cada clique o cliente faz uma busca no servidor gerando trafego na rede e talvez ate por este motivo sua pesquisa esteja LENTA. 8)
GOSTEI 0
Pro-luck
04/11/2003
Vc sugeriu-me que forçasse a criação de arquivos temporários na máquina local para evitar o overhead da rede. Se não for muito abuso de sua boa vontade, pode me dizer como se faz isso? Estou vendo mesmo fazendo um sistema grande como o que eu fiz, só estou engatinhando no Delphi ainda.
Certo de sua ajuda, antecipadamente agradeço.
Sobe
Certo de sua ajuda, antecipadamente agradeço.
Sobe
GOSTEI 0
Aroldo Zanela
04/11/2003
Colega,
Crie um atalho para a aplicação na área de trabalho. Em seguida, clique com o botão direito sobre o ícone do atalho e altere a propriedade de ´Iniciar em´ para uma pasta local, como: c:\windows\temp. Isto fará que o BDE (se for o caso) crie os arquivos temporários (_QSQSL*.DB?) localmente.
Crie um atalho para a aplicação na área de trabalho. Em seguida, clique com o botão direito sobre o ícone do atalho e altere a propriedade de ´Iniciar em´ para uma pasta local, como: c:\windows\temp. Isto fará que o BDE (se for o caso) crie os arquivos temporários (_QSQSL*.DB?) localmente.
GOSTEI 0
Fava
04/11/2003
Na minha concepção um sistema client/server ou funcionando em rede nunca deveria ter uma pesquisa como esta que voce esta fazendo, esta pesquisa é uma ´BOMBA´ para a REDE, pois a cada clique o cliente faz uma busca no servidor gerando trafego na rede e talvez ate por este motivo sua pesquisa esteja LENTA. 8)
Concordo plenamente....
Não invente moda.... faça o usuário digitar o nome e depois clicar em um botão do tipo ´localizar´ e só ai você vai até o banco de dados fazer a pesquisa. Aposto que seu usuário vai sair dando pulos de alegria com a melhora de performance que ele terá.
GOSTEI 0