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.