SQLBulkCopy or Bulk Insert

SeanVDH picture SeanVDH · Feb 8, 2011 · Viewed 7.7k times · Source

I have about 6500 files for a sum of about 17 GB of data, and this is the first time that I've had to move what I would call a large amount of data. The data is on a network drive, but the individual files are relatively small (max 7 MB).

I'm writing a program in C#, and I was wondering if I would notice a significant difference in performance if I used BULK INSERT instead of SQLBulkCopy. The table on the server also has an extra column, so if I use BULK INSERT I'll have to use a format file and then run an UPDATE for each row.

I'm new to forums, so if there was a better way to ask this question feel free to mention that as well.

Answer

SeanVDH picture SeanVDH · Feb 8, 2011

By test, BULK INSERT is much faster. After an hour using SQLBulkCopy, I was maybe a quarter of the way through my data, and I had finished writing the alternative method (and having lunch). By the time I finished writing this post (~3 minutes), BULK INSERT was about a third of the way through.

For anyone who is looking at this as a reference, it is also worth mentioning that the upload is faster without a primary key.

It should be noted that one of the major causes for this could be that the server was a significantly more powerful computer, and that this is not an analysis of the efficiency of the algorithm, however I would still recommend using BULK INSERT, as the average server is probably significantly faster than the average desktop computer.