Fazer consultas no banco com 2 timer
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.
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
Curtidas 0
Respostas
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:
Thread não seria uma solução? :roll:
GOSTEI 0
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
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
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
Luiz
GOSTEI 0
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.
pode me add no msn, posso te dar algumas dicas referente como utilizar o ibevents.
GOSTEI 0
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 :)
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
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
Luiz
GOSTEI 0