2011-02-08 3 views
12

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

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

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

ответ

7

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

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

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