Adapter com SQLite

18/05/2012

0

Estou desenvolvendo no ambiente DotNet, com c# e utlizando Datasets Tipados para realizar o processo de inserção em uma base de dados SQLite, tenho 10000 registros, esta levando um tempo de 10 minutos para realizar toda inserção, esta muito lento, como faço para otimizar e acelerar esse processo ?

if (dtBens.Count > 0)
{
if (pBensTableAdapter.Update(dtBens) <= 0)
return false;
}
return true;

Obrigado.
Inovação Ltda

Inovação Ltda

Responder

Posts

18/05/2012

Joel Rodrigues

Nunca precisei fazer isso, mas será que se você filtrar seu dataset antes de inserir um novo registro não melhoraria um pouco? Por exemplo, selecionar apenas um registro ou nenhum (SELECT TOP 0...).
Responder

18/05/2012

Inovação Ltda

Como assim, não entendi Joel.

Agradeço a atenção.
Responder

18/05/2012

Joel Rodrigues

Seu dataset possui vários registros, certo? Por exemplo, você faz um SELECT * FROM TABELA e depois insere um novo registro. Eu acredito que o dataset seja totalmente atualizado, logo, se você tiver poucos itens no dataset, esta atualização será pequena. Com base nesse pensamento eu te sugerir filtrar o dataset para que, no momento do insert, só haja um registro.

Bem, como te falei, nunca usei isso, é teoria mesmo.
Responder

18/05/2012

Inovação Ltda

Certo, joel, so que no meu caso tenho um Datatable contendo 10000 mil registros e insiro todos de uma vez utilizando o Update do Adapter, pois ja alimentei este datatable que será enviado.

Não consegui imaginar essa sugestão neste cenario.

Obrigado.
Responder

18/05/2012

Fabio Rosa

Uma perguntinha...

Você precisa inserir todos os 10000 registros de uma vez para o banco? Será que se quebrar em blocos menores de registros não ficaria mais rápido?

Só uma sugestão...

Att.
Responder

18/05/2012

Joel Rodrigues

Rapaz, realmente nesse caso a minha dica não se aplica. Porém, repito a pergunta do colega acima: é realmente necessário inserir os 10000 registros de uma vez? Aí fica complicado pra qualquer banco que seja, né? Considere inserir de outra forma, faça testes pra ver qual é a melhor saída (executar instruções SQL de insert, usar Entity Framework, sei lá).
Responder

21/05/2012

Inovação Ltda

Boa tarde.

Ja tentei de varias maneiras, inserindo 1 por 1, e inserindo todos de uma vez, 10000 não é uma quantidade alta para

inserção, não entendo porque é tão lento, no delphi dura menos de 10 segundos.

O resultado individual e total é o mesmo, varios minutos.

Neste cenario não posso utilizar entity.

Obrigado.
Responder

21/05/2012

Joel Rodrigues

Já tentou executar uma instrução SQL de insert a partir de outro objeto? Um SqlCommand, por exemplo.
Responder

22/05/2012

Inovação Ltda

Bom dia, sim, ja tentei, so para terem ideia, fiz um teste usando O SQLite e SQL CE, para inserir 10000 mil registros no Lite, demora 15 minutos, no CE demora 0,88 segundos, o problema com certeza esta no SQLite, alguma configuração,versão ou outro processo que esta barrando a agilidade.

Obrigado.
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar