SqlBulkCopy все еще быстрее, чем Dapper?

Я нашел статью Сэма Шафрана о массовой вставке с Dapper ( Эта досадная проблема с вставкой при получении данных в базу данных с помощью dapper), где он заканчивает статью выражением:

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

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

Недавно я наткнулся на Dapper Plus, который утверждает, что может сделать 1 000 000 строк за 2 000 мс, которые, кажется, превосходят SqlBulkCopy на основе многих старых статей о производительности, которые я нашел (таких как эта - Оценка ORM для пакетных данных).

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

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

1 ответ

Решение

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

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

Эта статья о Entity Framework, но это та же стратегия для Dapper, если вам нужна дополнительная информация: Entity Framework Как массовая вставка в SQL Server

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

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

  • BulkUpdate
  • BulkDelete
  • BulkMerge

используя трюки SqlBulkCopy и Temporary Table.

Другие вопросы по тегам