Fazer consultas no banco com 2 timer

Delphi

15/02/2009

Olá,

Tenho uma aplicação que vai usar 2 timers para fazer consultas no banco de dados. O primeiro timer vai fazer uma consulta SQL de minuto em minuto numa tabela e o outro timer vai fazer uma consulta SQL de 10 em 10 segundos em outra tabela. Gostaria de saber se isso (2 timers fazendo consultas ao mesmo tempo) pode causar algum problema na minha aplicação?

OBS; minha aplicação usa firebird com ibx e roda em rede local.


L_carlos

L_carlos

Curtidas 0

Respostas

Paullsoftware

Paullsoftware

15/02/2009

vai causar um alto consumo da rede, pode até causar perda de dados devido ao excesso de carga existente na rede, uma vez que pode acontecer o congestionamento da mesma...

Thread não seria uma solução? :roll:


GOSTEI 0
Steve_narancic

Steve_narancic

15/02/2009

O Ibx possui um componente chamado ibevents, que pode ser utilizado para detectar eventos no banco de dados, ou seja, vc poderá efetuar a pesquisa somente quando tiver alguma alteração na tabela, assim não congestiona sua rede e evita consultas desnecessárias


GOSTEI 0
Steve_narancic

Steve_narancic

15/02/2009

da uma pesquisada no site da devmedia, se não me engano tem uma vídeo aula que ensina a usar esse componente


GOSTEI 0
L_carlos

L_carlos

15/02/2009

Certo, vou pesquisar sobre esse componente. Mas acontece que eu tenho uma aplicação que usa um timer para fazer uma consulta sql de minuto em minuto no banco e que já roda há varios meses em varias redes locais e nunca tive nenhum problema com ele.

Luiz


GOSTEI 0
Steve_narancic

Steve_narancic

15/02/2009

sim, mas não concorda que fazer a pesquisa somente no momento em que for necessário atualizar os dados é bem melhor?

pode me add no msn, posso te dar algumas dicas referente como utilizar o ibevents.


GOSTEI 0
Alexcyberstar

Alexcyberstar

15/02/2009

Ola pessoal,

tenho uma aplicação assim identica com Querys executadas atraves de Timers, que disparams a cada segundo gerando em runtime um Query para verificação de registos existentes com HH:MM:SS = HoraActual despoletando se existentes determinada acção, no meu caso o trafego de informação é muito reduzido pois apenas confirmo registos a cada segundo para obter a lista de IDs para localmente executar determinadas acções.

De qualquer forma nessa tua aplicação desde que as maquinas tenham recurso para bombar Querys ate mais nao, nao deveras ter problemas, deves ter em atenção outros trafegos possiveis existentes na rede que causem atraso e trabalhar a comunicação e a estrutura da base de dados para boa segurança e fiabilidade.

Outro método se for aplicavel poderá ser atraves do uso de Clientdataset carregando nele a informação necessaria para processar localmente as querys necessarias usando o ´Filter´ e carregar novamente so quando existirem novos eventos de actualizaçao de dados.

De qualquer forma ficam as dicas e so mesmo testando e analisando varias possibilidades comparando desempenho e execuçao entre elas conseguiras obter o melhor metodo para essa tua aplicaçao.

Cumprimentos e boas programações :)


GOSTEI 0
L_carlos

L_carlos

15/02/2009

vlw Alexym eu estou testando o programa com 2 timer em uma rede com mais de 40 maquinas e até agora não tive problemas. Eu acredito que não vai influir no desempenho porque as 2 consultas que os timer fazem retornam poucos registros (no maximo 30).

Luiz


GOSTEI 0
POSTAR