Ajuda com Lentidão no Append Do ClientDataSet
Olá pessoal,
Tenho um aplicação desenvolvida no Delphi 2007, na qual existe um determinado momento
em que é feito um while que é executado 30 vezes até sair, dentro deste while
existem um ClientDataSet ligado pra meio de um datamodule ao banco, onde a cada iteração
do while é dado um append nesse ClientDataSet demorando assim uma média de 4 segundos
para a execução deste while, no entanto quando coloco um edit no ClientDataSet ao invés do
Append o laço de repetição demora em média 1 segundo, e existe outra parte do sistema também,
onde ocorrem outro while que é executado 30 vezes e um Append dentro dele mas seu tempo
de execução é em média 1 segundo, a unica diferença entre eles é que este segundo não está ligado ao banco,
é apenas atribuidos valores para impressão de um relatório, o primeiro possui dois campos como indexfieldsname.
Essa demora de execução entre os dois while é devido ao fato do primeiro estar ligado ao banco? É normal essa demora
no camando append? ou normalmente utilizam de outro método para inserção?
P.S. tentei dando um insert também mas a demora foi a mesma.
Tenho um aplicação desenvolvida no Delphi 2007, na qual existe um determinado momento
em que é feito um while que é executado 30 vezes até sair, dentro deste while
existem um ClientDataSet ligado pra meio de um datamodule ao banco, onde a cada iteração
do while é dado um append nesse ClientDataSet demorando assim uma média de 4 segundos
para a execução deste while, no entanto quando coloco um edit no ClientDataSet ao invés do
Append o laço de repetição demora em média 1 segundo, e existe outra parte do sistema também,
onde ocorrem outro while que é executado 30 vezes e um Append dentro dele mas seu tempo
de execução é em média 1 segundo, a unica diferença entre eles é que este segundo não está ligado ao banco,
é apenas atribuidos valores para impressão de um relatório, o primeiro possui dois campos como indexfieldsname.
Essa demora de execução entre os dois while é devido ao fato do primeiro estar ligado ao banco? É normal essa demora
no camando append? ou normalmente utilizam de outro método para inserção?
P.S. tentei dando um insert também mas a demora foi a mesma.
Bruno Henrique
Curtidas 0
Respostas
Wilton Júnior
21/09/2012
Bruno, tive o mesmo problema com o delphi 2007 e depois desisti de mexer com ele.
Estou usando o delphi XE2 uso cliendataset e dbexpress em uma maquina antiga e não tenho esse tipo de problema mais.
Tente testar o trabalho em uma versão mais antiga ou mais nova.
abraços
Estou usando o delphi XE2 uso cliendataset e dbexpress em uma maquina antiga e não tenho esse tipo de problema mais.
Tente testar o trabalho em uma versão mais antiga ou mais nova.
abraços
GOSTEI 0
Alisson Santos
21/09/2012
Olha se falar que a demora é normal estarei engando, o que tem que ser analisado é a quantidade de dados que tem essa tabela e qual o select que está por traz dela.
Referente a diferença entre as duas cai no que eu falei.
Se puder postar os dois laços estarei analisando e auxiliando você nessa duvida.
Referente a diferença entre as duas cai no que eu falei.
Se puder postar os dois laços estarei analisando e auxiliando você nessa duvida.
GOSTEI 0