В приложении C #, какой самый оптимальный способ вставить много записей в SQL Server? - PullRequest
0 голосов
/ 07 апреля 2010

Мне нужно выполнить очень большую вставку сервера sql из приложения c #. Где-то в диапазоне от 20 000 до 50 000 записей.

Каков самый быстрый путь через SQL-сервер для выполнения вставки?

Есть несколько вариантов, которые я знаю, но я не знаю, какой из них самый быстрый.

   insert into MyTable(column1, column2, ..., column*)
   select 'value','value',...,'value'
   union
   select 'value','value',...,'value'

OR

   insert into MyTable(column1, column2, ..., column*)
   exec('select ''value'',''value'',...,''value'''
        'select ''value'',''value'',...,''value''')

OR

   bulk insert from a data file

OR

   Any better way that you know of :)

Ответы [ 2 ]

6 голосов
/ 07 апреля 2010

Из C # вы можете использовать SqlBulkCopy , но для общей скорости, я думаю, вы сможете быстрее работать с bcp, и вы действительно сможете настроить SSIS больше всего. В обоих случаях вы бы эффективно использовали внешние исполняемые файлы - bcp или dtexec.

4 голосов
/ 07 апреля 2010

использование класса SqlBulkCopy - ваш лучший выбор, если вы собираетесь использовать C # для массового копирования. Я использовал его для передачи 15К строк данных, и он завершается в одно мгновение.

НТН

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...