Tabela Grande fica muito lento com Intarbase

Delphi

07/11/2003

Tenho uma tabela com aproximadamente 50 mil registros. Acontece que quando a abro o sistema fica muiiiiiiiiiiiiiiiiiiiiito lento para ter uma idéia quando clico no dbnavigator para navegar ele leva uns 10 seg para setar para o próximo registro!
Meu banco de dados é Interbase uso os componentes sqlquery, clientdataset e datasetprovider para me conectar.
Alguem sabe se existe alguma opcao para otimizar essa conexão para que o sistema possa ficar mais rapido????
Agradeço a Ajuda!!!
Marcos R


Marcos Robson

Marcos Robson

Curtidas 0

Respostas

Rfpsatin

Rfpsatin

07/11/2003

Te aconselho a mudar a forma de trabalhar com os dados.

tem a necessidade de trazer todos os 50 mil de uma vez p/ a tela?

não da p/ vc trazer só o necessário?

tipo:

abre o form trazendo absolutamente nada.
ae o cara tem um ´botao´ q clica p/ dizer q quer trazer tudo ou nao.
dêe a opção dele fazer busca p/ trazer um registro específico.

meus cadastros são assim.

abraço


GOSTEI 0
Marcelo.c

Marcelo.c

07/11/2003

A velocidade também depende das ligações feitas. Se você possui conexões Mestre-detalhe procure modificar a forma de acesso aos dados das tabelas detalhe.
Utilize o evento AfterScrool da tabela Mestre para passar parâmetros para tabelas detalhe e trazer apenas os registros relacionados.


GOSTEI 0
Thoor Cobain

Thoor Cobain

07/11/2003

Caso você tenha várias query e tables no form, procure deixar todas fexhadas, abra apenas a principal do form.


GOSTEI 0
Vinicius2k

Vinicius2k

07/11/2003

Colega,
Além das sugestões corretíssimas dos demais colegas, acrescento apenas que, caso seja realmente necessário trazer todos os 50 mil registros para o cliente, utilize a propriedade ´PacketRecords´ do ClientDataSet para que seja realizado o Fetch dos registros à medida que forem necessários...
Para 2 camadas basta setar esta propriedade para a quantidade de registros q vc quer trazer por vez... Para 3 camadas existem mais algumas implentações a serem feitas (se 3 camadas for seu caso, poste novamente, OK?) ...
Apenas fique atento porque alguns métodos e leitura de propriedades podem invalidar o set desta propriedade como CDS.Last, CDS.Locate, CDS.RecordCount...

Espero ter ajudado. Boa Sorte !
T+


GOSTEI 0
POSTAR