2016-09-01 3 views
6

я нашел статью Sam Saffron на насыпной вставки с Dapper (That annoying insert problem getting data into the db using dapper), где он заканчивает статью с утверждением:Является ли SqlBulkCopy еще быстрее, чем Dapper?

Например, если вам нужно ультра быстрый способ вставить много вещей в SQL DB, ничто не собирается бить SqlBulkCopy, и для этого вам понадобится настраиваемый API.

Статья более 4 лет.

Я недавно наткнулся на Dapper Plus, который утверждает, чтобы иметь возможность сделать 1,000,000 строк в 2,000ms, которые, казалось бы опережать SqlBulkCopy на основе многих старых статей производительности, которые я нашел (например, этот - Evaluating ORMs for batch data).

К сожалению, мой Google-fu не смог найти более поздние сопоставления производительности между этими двумя методами массового импорта.

Вопрос: Есть SqlBulkCopy еще быстрее, чем Dapper.NET?

+1

Это не источник с открытым исходным кодом, но с учетом [Визуализации настройки производительности] (https://github.com/zzzprojects/Bulk-Operations/wiki/Performance-Tuning-Options) вы можете настроить 'SqlBulkCopyOptions', I ' d предлагает, что реализация SQL Server является оболочкой вокруг 'SqlBulkCopy'. –

+0

Я думаю, что вы смотрите на неправильную библиотеку. У них также есть стандартная библиотека ADO.NET. Возможно, я связал неправильную вещь. – toadflakz

+0

Я предполагаю, что все они основаны на одном и том же, но [здесь есть специальный Dapper Plus] (https://github.com/zzzprojects/Dapper-Plus/wiki/dapper-plus-mapper-sql-server). –

ответ

5

Отказ от ответственности: Я владелец проекта Dapper Plus

Щеголеватый Plus для SQL Server/Azure использует SqlBulkCopy под капотом, когда есть достаточное количество лиц, чтобы сохранить в противном случае он будет использовать SQL производной таблицы.

Эта статья о Entity Framework, но это та же стратегия Dapper, если вы хотите получить больше информации: Entity Framework How to Bulk Insert in SQL Server

Таким образом, наша библиотека, очевидно, не превосходит SqlBulkCopy, это та же производительность, но наша библиотека облегчает использовать.

Библиотека также поддерживает:

  • BulkUpdate
  • BulkDelete
  • BulkMerge

используя SqlBulkCopy и временные фокусы таблицы.

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