2013-07-08 2 views
2

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

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

Спасибо.

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

ответ

0

Вы пытались импортировать данные в базу данных sql из файла доступа? База данных-> Задачи-> Импорт, Microsoft Access в качестве источника данных, файл mdb как параметр

Если вы хотите сделать это с помощью C#, вам следует рассмотреть использование пользовательских типов таблиц с хранимыми процедурами.

+0

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

+1

рассмотрите использование пользовательских типов таблиц. – Ehsan

1

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

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

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

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

+0

thanks.but. Я хочу, чтобы какой-либо из них работал лучше, поскольку я должен освободить его для производства. – Lalitya

+0

и спасибо за газету. Также очень информативно. – Lalitya

+0

добро пожаловать. и нет ничего сопоставимого с SQLBulkCopy .. я видел, что разработчик спрашивает на форумах bulkcopy class для Oledb, как sqlbulkcopy, используя sqlbulkcopy http://forums.asp.net/t/1537002.aspx/1 .. и http: // www.codeproject.com/Questions/46816/Bulk-Copy-in-oledb .. так что я скажу, что вы переходите на объемную копию sql :) – Microtechie

Смежные вопросы