C# · 12月 22, 2021

c# – SqlBulkCopy还比Dapper快吗?

我发现Sam Saffron撰写了一篇关于使用Dapper( That annoying insert problem getting data into the db using dapper)进行批量插入的文章,他在文章结束时声明:

For example,if you need an ultra fast way to insert lots of stuff into a sql DB,nothing is going to beat sqlBulkCopy and you are going to need a custom API for that.

这篇文章已有4年多了.

我最近偶然发现Dapper Plus声称可以在2000毫秒内完成1,000,000行,根据我发现的许多旧性能文章(例如这个 – Evaluating ORMs for batch data),它似乎胜过sqlBulkCopy.

遗憾的是,我的Google-fu未能找到这两种批量导入方法之间的最新性能比较.

问题:sqlBulkCopy还是比Dapper.NET快吗?

解决方法 免责声明:我是 Dapper Plus项目的所有者

当有足够的实体保存时,sql Server / Azure的Dapper Plus使用sqlBulkCopy,否则它将使用sql派生表.

本文是关于实体框架的,但如果您需要更多信息,它与Dapper的策略相同:Entity Framework How to Bulk Insert in SQL Server

所以,我们的库显然没有超越sqlBulkCopy,它的性能相同,但我们的库使它更容易使用.

该图书馆还支持:

> bulkupdate
> BulkDelete
> BulkMerge

使用sqlBulkCopy和临时表技巧.