Formulario lento
Tenho um form de consulta de clientes, existem 35.000 clientres cadastrados. o formulário apresenta lentidão ao abrir. o form contem um dbgrid e a consulta é feita por um campo usando o evento onchange.
o que faço para acabar co a lentidão.
uso o firebird 1.5
SQlconnection
SQlDataSet
DataSetProvider
ClientDataSet
DatSource
o que faço para acabar co a lentidão.
uso o firebird 1.5
SQlconnection
SQlDataSet
DataSetProvider
ClientDataSet
DatSource
Benilton
Curtidas 0
Respostas
Marco Salles
21/08/2010
Tenho um form de consulta de clientes, existem 35.000 clientres cadastrados. o formulário apresenta lentidão ao abrir. o form contem um dbgrid e a consulta é feita por um campo usando o evento onchange.
o que faço para acabar co a lentidão.
uso o firebird 1.5
SQlconnection
SQlDataSet
DataSetProvider
ClientDataSet
DatSource
..
OnChange so para dados que estão em memória . Pelo que se entende vc esta consultando a base de dados
Uma tabela com 35000 não é tao pequena assim
Vc deve usar Indices na Base de dados , eles melhoram consideralvemente a Consulta
Vc deve parametrizar a consulta , Vc deve estar usando o Like que impede o trafigo exagerado na Rede
Se vc quiser usar o onchange limite o Numero de caracters para disparar a consulta
existe tb uma opção interressante no clientDatSet que é o PacketRecords
a)com FetchOnDemand ativado
Com ele vc tras os dados por Demanda e o próprio ClientDataSet detecta quando mais registros são necessário e traz por demanda (daí o nome FetchOnDemand)
b)FetchOnDemand desativado
você solicita novos pacotes de dados, através do método GetNextPacket do CD
o que faço para acabar co a lentidão.
uso o firebird 1.5
SQlconnection
SQlDataSet
DataSetProvider
ClientDataSet
DatSource
GOSTEI 0