2016-08-05 5 views
0

У меня есть программа в C#, которая загружает данные из 4 источников (2 листа excel, оракула и базы данных доступа) и вычисляет их друг против друга. В результате у меня есть некоторые большие результаты, я сохраняю результаты в List. Количество строк в результате равно приблизительно 120 000. Один ряд - около 10 МБ. Результат вставляется в базу данных доступа.Как вставить много данных в базу данных

Как вставить этот список в свою базу данных? Может ли кто-нибудь дать мне пример?

Теперь я вставляю строки в таблицу один за другим. Мне это стоило около 3 часов.

+0

Это SQL Server? – user3185569

+1

Святая корова! 120.000 строк по 10 МБ каждый ?! Что вы делаете в этой БД? – Randy

+2

Перетаскивание 1,2 ГБ по сети и вставка в базу данных с 3 часами. Это справедливо. – user3185569

ответ

2

Используйте какой-то объемный вкладыш. Если ваша инфраструктура сущностей для работы с вашим db выглядит так, как вам нужно. Максимальный тайм-аут также.

using (var transactionScope = new System.Transactions.TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0))) 
      { 
       try 
       { 
        ctx.BulkInsert(productsToSync, new BulkInsertOptions() 
        { 
         TimeOut = 10 * 60 * 1000 
        }); 
        await ctx.SaveChangesAsync(); 
       } 
       catch (Exception ex) 
       { 
        SystemLogManager.AddDataSyncErrorLog(ex); 
       } 
       finally 
       { 
        transactionScope.Complete(); 
       } 
      } 
+0

Для этого требуется https://efbulkinsert.codeplex.com/? Вы можете включить это в свой ответ. – Botonomous

Смежные вопросы