У меня есть сценарий, в котором данные должны быть импортированы из файла CSV через приложение .NET в SQL Server 2008 на сервере базы данных (распределенном).Файл CSV содержит около 4 миллиона «записей» , тогда как таблица назначения может содержать более 100 миллионов записей .Импортируемые данные должны быть проверены на наличие дубликатов существующих данных перед выполнением вставки.
Я попытался создать DataTable в памяти и отправить его в качестве параметра в хранимую процедуру, однако это выполняется оченьплохо.
Какой подход подходит для этого сценария?
- Данные для импорта (
importdata
) необходимо отправить на SQL Server importdata
необходимо проверить существующие данные (existing
) на наличие дубликатов - , если в * 1019 обнаружен только один дубликат *, весь импорт для
importdata
необходимо прервать
Формат CSV
"Name1", "11111111-1111-1111-1111-111111111111"
"Name1", "11111111-1111-1111-1111-111111111111"
"Name1", "11111111-1111-1111-1111-111111111111"
Данные для импорта (схематично в формате DataTable):
Table (
name nvarchar(20),
someId uniqueidentifier
)
Таблица назначения на SQL Server(схематично):
Table (
id int primarykey,
name nvarchar(20),
someId uniqueidentifier
)