Какой самый быстрый способ вставить много строк без использования BULK INSERT? - PullRequest
2 голосов
/ 28 мая 2011

Я запускаю файлы SQL с sqlcmd, которые вставляют много строк в сервер MS SQL (2008 R2), поэтому выполнение BULK INSERT было бы оптимальным, но файлы данных могут быть недоступны для сервера SQL.

Какие еще способы или опции можно использовать (очень) для быстрой вставки в MS SQL Server 2008 R2?

Ответы [ 2 ]

1 голос
/ 28 мая 2011

Вы также можете использовать утилиту bcp. Я обнаружил, что он быстрее и проще в использовании, чем оператор BULK INSERT. Единственное предостережение в том, что вам может потребоваться запустить его на самом сервере и поместить ваши файлы в общий каталог, доступный для сервера. Не уверен, что вам действительно нужно это сделать.

1 голос
/ 28 мая 2011

Закончилось написанием пользовательского приложения на C #, которое использует System.Data.SqlClient.SqlBulkCopy .Также замена файлов SQL, содержащих данные, на файлы XML, сгенерированные с помощью System.Data.DataTable.WriteXml, которые впоследствии можно было импортировать с помощью ReadXml и использовать непосредственно с SqlBulkCopy.

. Это решение примерно в 10 раз быстрее, чем при использованииобычный INSERT с, и в 50 раз быстрее, чем при использовании вставок по 1000 строк.(Почему операции вставки со многими значениями строк в одном операторе намного медленнее, чем операции вставки с одной строкой в ​​каждом, для меня загадка.)

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