[firebase-br] Qual situação vou obter melhor desempenho?
Eliomar
eliomar em promediconet.com.br
Qui Jun 30 13:21:27 -03 2005
Penso o seguinte então:
Vamos pensar a tela já de consulta.
Vc vai pesquisar por qual campo? (vou considerar codigo)
De x tempo vc fária o seguinte:
select * from table
e carregaria o resultado para um ProfGrid ou outro componente
não DB.
Faria a consulta neste componente testando se tem o registro
lá, se for ProfGrid, pode se testar cada linha e coluna o que em
mil registro acho que faz em segundos...
Agradecido.
Eliomar,
ICQ - 167715482
MSN - eliomar0910 em hotmail.com
Soft-Data Softwares Administrativos
hptt://www.promediconet.com.br
------------- Segue mensagem original! -------------
De: -=SchiavoR=- <schiavor em uol.com.br>
Data: Thu, 30 Jun 2005 08:44:25 -0300
Para: FireBase <lista em firebase.com.br>
Assunto: Re: [firebase-br] Qual situação vou obter melhor desempenho?
Ola Eliomar.
Deixa eu esclarer umas coisas quem sabe assim vc pode me ajudar.
Comentários abaixo:
Eliomar escreveu:
>Na minha modesta opnião, e sem muito conhecimento da estrutura
>de seu banco de dados, tem que saber mais para uma opnião concreta.
>
>Usar locate acho que é loucura...
>
>O Resultado do select será grande? Muitos Registros? Pq se for pode matar qualquer
>performace.
>
>
Não, o resultado do select não sera muito grande por que a tabela
tem no máximo uns 1000 registros.
>Tem que se montar um select que irá trazer o menor número de registros
>possíveis... ai vc pode a cada vez que precisar executar um select.
>
>
Infelizmente eu tenho de trazer ou todos e ficar verificando no
ClientDataSet se o registro existe, desta forma eu faço apenas uma
conseulta no banco de dados a cada periodo de tempo definido somente
para atualizar os dados do CDS
>Outra coisa... quais tabelas serão envolvidas... se for somente uma vai um
>select simples mesmo... se tiver que fazer contas e mais contas e outras tabelas
>ai seria melhor uma SP que faria todo o trabalho no banco e lhe retornaria
>somente o necessário.
>
>
Apenas uma tabela simples é envolvida no processo, somente um select *
from tabela, nda mais.
>Não sei se esclareceu alguma coisa e se escureceu....
>
>
Só pra finalizar, preciso fazer isto apenas para veirificar se
determinado registro existe na tabela e caso exista vou usar apenas
alguns campos dele. O problema é que o acesso a este banco é muito
concorrido e acho que fazer um select passando como parametro um codigo
por exemplo toda vez que precisar consultar a tabela vai fazer com o o
acesso ao banco fique mais lento ainda, por isso penso que mesmo o
Locate sendo um processo mais dispendioso o resultado final pode ser
melhor de que fazer varios selects num banco carregado de tarefas.
>
>Agradecido.
>Eliomar,
>ICQ - 167715482
>MSN - eliomar0910 em hotmail.com
>Soft-Data Softwares Administrativos
>hptt://www.promediconet.com.br
>
>
>
>------------- Segue mensagem original! -------------
>
>De: -=SchiavoR=- <schiavor em uol.com.br>
>Data: Wed, 29 Jun 2005 11:36:27 -0300
>Para: FireBase <lista em firebase.com.br>, delphi-br em yahoogrupos.com.br
>Assunto: [firebase-br] Qual situação vou obter melhor desempenho?
>
>Ae galera blz?
>
>Tenho a seguinte situação:
>
>Um pequeno banco Firebird 1.5 local, que deve fazer um processamento de
>um grande tráfego de informações.
>
>Tenho uma tabela de cadastros que sofre poucas modificações, porém em
>minha aplicação esta tabela é consultada com muita frequência, algo em
>torno de umas 10 vezes por segundo.
>
>Levantei duas possibilidades de tratar isto.
>
>1- Fazer uma Stored Procedure que será executada muitas vezes e deixar o
>trabalho da consulta por conta do banco.
>
>2- Trazer em um ClientDataSet todos os registros da tabela, e fazer um
>locate várias vezes nele, e a cada intervalo de hora fechar o
>ClientDataSet e abrir novamente para atualizar os dados locais.
>
>Problemas: Como este banco sofre várias consultas ele também sofre muita
>inserções, cerca de 1000 por minuto, se utilizar Stored Procedure existe
>a possibilidade de lentidão nesta consulta, visto que isto não pode
>ocorrer, uma vez que se for positivo a consulta devo dar uma resposta em
>menos de 700 milisegundos.
>
>Qual das situações acima seria melhor para este problema? Se alguem
>tiver uma outra solução por favor sinta-se a vontade para sugerir.
>
>
>Obs: Como este assunto envolve Banco de Dados e Delphi, estou enviando a
>dúvida para duas listas, se alguem for assinante das duas e receber a
>mesma mensagem novamente, por favor me desculpe.
>
>[ ]'s Rodrigo Schiavo
>
>
>______________________________________________
>FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
>Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
>
>
>______________________________________________
>FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
>Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
>
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
Mais detalhes sobre a lista de discussão lista