SQLBulkCopy или массовая вставка

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

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

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


person SeanVDH    schedule 08.02.2011    source источник


Ответы (1)


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

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

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

person SeanVDH    schedule 08.02.2011
comment
Таким образом, это не говорит ничего полезного о внутренних различиях обоих методов. Также отсутствует информация о деталях реализации обоих методов. В общем, не слишком полезный ИМО. - person Gert Arnold; 01.11.2019
comment
Экспериментирование - основа науки. Имея доступные ресурсы, в том числе временные, я поделился своими результатами на публичном форуме. Я бы сказал, что этот ответ предоставляет данные о конкретных результатах для четко описанного сценария, и люди, использующие аналогичный вариант использования, могут найти его полезным. - person SeanVDH; 06.06.2021