SQL BulkCopy против OPENDATASOURCE, который быстрее

.net c# sqlbulkcopy sql-server

Вопрос

Я хочу вставить данные в sqlserver из файла доступа .mdb, который является самым быстрым способом для ввода данных SQL BulkCopy или OPENDATASOURCE с использованием OLEDB.

Данные будут похожи на 100 000 записей для примерно 20 таблиц.

Благодарю.

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

Популярные ответы

В моем мнении самая лучшая производительность вставки для вставки больших объемов данных может быть достигнута с помощью SQL Bulk Copy, поскольку этот метод полностью обходит язык запросов SQL и передает данные непосредственно в SQL.

Дальнейшие улучшения производительности

  • По умолчанию SqlBulkCopy использует блокировки строк во время операции массовой копии. Если указана опция TableLock в SqlBulkCopyOptions, она получает блокировку массового обновления в течение продолжительности операции массовой копии, и производительность будет улучшена.
  • Кластерная таблица: если это возможно, лучший способ загрузить ее - удалить кластерный индекс.
  • Индексы: индексы создают огромные проблемы с параллелизмом, поэтому всегда полезно загружать без каких-либо индексов

Вы можете прочитать больше на Техническом документе: производительность SqlBulkCopy http://www.sqlbi.com/wp-content/uploads/SqlBulkCopy-Performance-1.0.pdf



Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow