none
Importacao de dados RRS feed

  • Pergunta

  • Pessoal,

    Estou fazendo um programa de importação de dados em c sharp e Entity.

    O programa irá importar um grande volume de dados 

    Ao realizar um teste com um arquivo de 1.5 milões de registro tive problemas com a exceção system.outofmemoryexception.

    Consegui resolver colocando o parametro <gcAllowVeryLargeObjects enabled="true" /> e configurando para x64.

    Ao executar o savechanges() houve uma demora absurda e o consumo de memoria chegou a 95% e desisti.

    Usei o metodo addrange para adicionar as entidades.

    Tentei fazer  executando os inserts direto pelo c sharp e demorou da mesma forma.

    Fiz uso de um plugin para o entity framework para fazer bulk insert https://efbulkinsert.codeplex.com/

    Mais sem mais nem menos começou a gerar erro e não achei nada que pudesse ajudar.

    A chave fornecida não estava presente no dicionário

    Qual a melhor forma de realizar esse processo de importação?



    André Perpetuo

    quinta-feira, 2 de junho de 2016 20:22

Todas as Respostas

  • Fala Andre. 

    Teu sistema vai realizar essa importação somente um vez pra cada base certo?

    se for isso, vc pode tentar fazer um consulta e pegar o ultimo registro. exemplo 1.987.954 

    de posse desse numero, faz a inserção em blocos de 2000 ou 5000 registros.

    att, wsti. 

    quinta-feira, 2 de junho de 2016 21:29
  • Não.

    Esse volume será diário.


    André Perpetuo

    sexta-feira, 3 de junho de 2016 11:16
  • Oi Andre, Diariamente 1,5 M  de registros ? 

    Se for isso mesmo amigo, não vejo outra solução.

    Claro que exitem outros vertentes que vc não especificou na sua pergunta. Que tipo de maquina vai rodar essa aplicação, processador, memoria etc e como esta esse servidor sql? outro fator 1,5 M de registros contando uma coluna tipo int é um processamento. 1.5 M de um banco de dados de um supermercado é outro. 

    Att, wsti.

    sexta-feira, 3 de junho de 2016 13:08