SQLBulkCopy или Bulk Insert

bulkinsert c# performance sql sqlbulkcopy

Вопрос

У меня около 6500 файлов на сумму около 17 ГБ данных, и это первый раз, когда мне пришлось переместить то, что я бы назвал большим количеством данных. Данные находятся на сетевом диске, но отдельные файлы относительно малы (макс. 7 МБ).

Я пишу программу на C #, и мне было интересно, заметим ли я существенную разницу в производительности, если я использую BULK INSERT вместо SQLBulkCopy. В таблице на сервере также есть дополнительный столбец, поэтому, если я использую BULK INSERT, мне придется использовать файл формата, а затем запустите UPDATE для каждой строки.

Я новичок в форумах, поэтому, если бы был лучший способ задать этот вопрос, не стесняйтесь говорить об этом.

Принятый ответ

По тестированию BULK INSERT работает намного быстрее. Через час, используя SQLBulkCopy, я, может быть, четверть пути своих данных, и я закончил писать альтернативный метод (и обедал). К тому времени, как я закончил писать этот пост (~ 3 минуты), BULK INSERT составлял примерно треть пути.

Для всех, кто рассматривает это как ссылку, также стоит упомянуть, что загрузка происходит быстрее без первичного ключа.

Следует отметить, что одной из основных причин этого может быть то, что сервер был значительно более мощным компьютером и что это не анализ эффективности алгоритма, однако я бы по-прежнему рекомендовал использовать BULK INSERT, поскольку средний сервер, вероятно, значительно быстрее среднего настольного компьютера.



Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему