2013-02-14 5 views
0

Я должен передать данные из datatable в базу данных. Общая запись составляет около 15k за раз. Я хочу сократить время ввода данных. Должен ли я использовать SqlBulk? или что-нибудь еще?большой объем данных в таблицу

ответ

0

Если вы используете C#, взгляните на класс SqlBulkCopy. Существует good article о CodeProject о том, как использовать его с DataTable

0

Если вы просто нацелитесь на скорость, то массовая копия может вас хорошо подправить. В зависимости от требований вы также можете уменьшить уровень ведения журнала.

http://social.msdn.microsoft.com/Forums/en-US/transactsql/thread/edf280b9-2b27-48bb-a2ff-cab4b563dcb8/

How to copy a huge table data into another table in SQL Server

+0

Я просто беспокоюсь о скорости. – kst

0

SQL-основная копия окончательно быстро с такой размер выборки, как это потоки данных, а не на самом деле, используя обычные команды SQL. Это дает ему немного более длительное время запуска, но с более чем 120 рядами за раз (по моим тестам)

Ознакомьтесь с моим сообщением здесь о том, как добраться сюда, если вы хотите получить некоторую статистику о том, как суммарная копия sql складывается против нескольких других методов.

http://blog.staticvoid.co.nz/2012/8/17/mssql_and_large_insert_statements

enter image description here

+0

Это очень помогает. – kst

0

15k записей не так много на самом деле. У меня есть ноутбук с процессором i5 и 4 ГБ оперативной памяти, и он вставляет 15 тыс. Записей за несколько секунд. Я бы не стал тратить слишком много времени на поиск идеального решения.

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