1

Тема: Імпорт даних в MS SQL Server (.NET, C#, EF)

Доброго дня!
Розробив імпорт даних в базу із xml, xls, csv, ... використавши С# + EF .
Із одного рядка імпорт іде в 5 звязаних таблиць

Приклад імпорту в одну з таблиць:

protected int importBrand(string bName, string notes)
{
    brand brn = new brand();
    brn.name = bName;
    brn.notes = notes;
    db.Configuration.AutoDetectChangesEnabled = false;
    db.brand.Add(brn);
    db.Configuration.AutoDetectChangesEnabled = true;
    db.SaveChanges();
    return brn.id; 
}

Зараз пішли великі об'єми і хочеться пришвидшити процес імпорту. Прошу допомоги.
Чи може використати іншу методику імпорту?
Який варіант тоді розглядати?
- ADO.NET
- прямий SQL на базу
- утіліти ms sql server
- інші

Дякую

2 Востаннє редагувалося Engineer (14.02.2016 18:32:57)

Re: Імпорт даних в MS SQL Server (.NET, C#, EF)

ADO.NET виконує INSERTи в базу MS SQL приблизно в 10 разів швидше чим EF. Перевіряв емпірично :)

Також можете звернути увагу на технологію Bulk Insert.
В .Net є клас System.Data.SqlClient.SqlBulkCopy
https://msdn.microsoft.com/uk-ua/librar … .110).aspx
Сам цей клас не юзав, тому нічого сказати не можу

Подякували: leofun011

3

Re: Імпорт даних в MS SQL Server (.NET, C#, EF)

Дякую

4

Re: Імпорт даних в MS SQL Server (.NET, C#, EF)

наскільки великі об'єми більше 10 міліонів?

5

Re: Імпорт даних в MS SQL Server (.NET, C#, EF)

1. наскільки великі об'єми більше 10 міліонів?

На даний момент бачу порядка 1-2 млн.
но добавляються нові джерела в них.

зробив варіант через ADO.NET - працює швидше.

дякую