国内外ORM框架数据插入测试

c# 国内外ORM 框架 dapper efcore sqlsugar freesql hisql sqlserver数据常规插入测试性能对比对比

在6.22 号发布了 c# sqlsugar,hisql,freesql orm框架全方位性能测试对比 sqlserver 性能测试 引起了很多争议

声明

首先我还是要做一下声明,测的都是开源软件,都是有开源协议的,而且测试源码已经开放不存在有故意黑的主观意图,测试结果仅为博主的电脑的配置测试的结果为测试结果呈现,测试结果不为最终结果。如果有意见请文明反馈,不接受任何形式的威胁与删博!!!

上次有部分网友说要对比一下efcore 和dapper的对比测试。那么这次来一次国内外ORM进行测试对比。

不过有点遗憾的是 目前dapper 和efcore 官方包中没有bulkcopy的功能(第三方插件有),因为官方没有如果拿第三方插件来做bulkcopy的对比这样有失公允,所以本次测试不测bulkcopy的,如果网友有比较认可的第三方插件那么下一次安排上。

经过上一次的测试经验 这次博主用两台电脑测试 两台电脑的配置如下

测试方案

  1. 因为不同的列插入的性能和时间肯定是有差别的本测试采用10列以下的数据集和50列的数据集进行测试
  2. 从5,50,100,500,1000,5000,10000,50000,100000 的数据阶段进行对比测试
  3. 为了防止有人说一台电脑测试不准,那么这次使用两台相同配置的电脑进行对比测试
  4. 测试的源码 上传到github
  5. 所有相关ORM的包都通过nuget安装最新版本2022.6.28前发布的
  6. 运行的测试程序都是在release环境运行
  7. 多个ORM同时运行,如果有影响那么整体相互影响测试相对是公平的
  8. 每个ORM插入的是独立的专用表,但结构是一模一样(不存在表不同的问题)

测试源码https://github.com/tansar/HiSqlTestDemo

测试结果

废话不多说先看测试结果,以下测试结果对排名进行不同颜色区分以下是颜色区分的图示

freesql sqlsugar 对比 sqlsugar dapper比较_ORM

第一台电脑测试结果

dapper efcore hisql sqlsugar freesql10列以下的常规数据插入测试结果

freesql sqlsugar 对比 sqlsugar dapper比较_数据_02

这个测试结果有没有让人很意外 efcore说实在的在很多网友的印象中应该还算是不错的,结果测试出来...(不会有人说我在黑efcore吧) 我只是基于这个测试结果来说

dapper efcore hisql sqlsugar freesql 50列常规数据插入测试结果

freesql sqlsugar 对比 sqlsugar dapper比较_freesql sqlsugar 对比_03

50列的 efcore 就更加明显了 ,至于排名我请大家自己评判吧

好了, 这是第一台测试电脑的结果

第二台电脑测试结果

dapper efcore hisql sqlsugar freesql10列以下的常规数据插入测试结果

freesql sqlsugar 对比 sqlsugar dapper比较_sql_04

这台电脑的配置排名相对于第一台电脑有一点变化

dapper efcore hisql sqlsugar freesql 50列常规数据插入测试结果

freesql sqlsugar 对比 sqlsugar dapper比较_ORM_05

第一台电脑的测试明细截图

第一台电脑5条10列以下插入截图

freesql sqlsugar 对比 sqlsugar dapper比较_ORM_06

第一台电脑50条10列以下插入截图

freesql sqlsugar 对比 sqlsugar dapper比较_数据_07

第一台电脑100条10列以下插入截图

freesql sqlsugar 对比 sqlsugar dapper比较_ORM_08

第一台电脑500条10列以下插入截图

freesql sqlsugar 对比 sqlsugar dapper比较_数据_09

第一台电脑1000条10列以下插入截图

freesql sqlsugar 对比 sqlsugar dapper比较_数据_10

第一台电脑5000条10列以下插入截图

freesql sqlsugar 对比 sqlsugar dapper比较_freesql sqlsugar 对比_11

第一台电脑10000条10列以下插入截图

freesql sqlsugar 对比 sqlsugar dapper比较_ORM_12

第一台电脑50000条10列以下插入截图

freesql sqlsugar 对比 sqlsugar dapper比较_sql_13

第一台电脑100000条10列以下插入截图

freesql sqlsugar 对比 sqlsugar dapper比较_freesql sqlsugar 对比_14

第一台电脑5条50列插入截图

freesql sqlsugar 对比 sqlsugar dapper比较_sql_15

第一台电脑50条50列插入截图

freesql sqlsugar 对比 sqlsugar dapper比较_sql_16

第一台电脑100条50列插入截图

freesql sqlsugar 对比 sqlsugar dapper比较_数据_17

第一台电脑500条50列插入截图

freesql sqlsugar 对比 sqlsugar dapper比较_ORM_18

第一台电脑1000条50列插入截图

freesql sqlsugar 对比 sqlsugar dapper比较_sql_19

第一台电脑5000条50列插入截图

freesql sqlsugar 对比 sqlsugar dapper比较_sql_20

第一台电脑10000条50列插入截图

freesql sqlsugar 对比 sqlsugar dapper比较_数据_21

第一台电脑50000条50列插入截图

freesql sqlsugar 对比 sqlsugar dapper比较_ORM_22

第一台电脑100000条50列插入截图

freesql sqlsugar 对比 sqlsugar dapper比较_数据_23

第二台电脑的测试明细截图

第二台电脑5条10列以下插入截图

freesql sqlsugar 对比 sqlsugar dapper比较_freesql sqlsugar 对比_24

第二台电脑50条10列以下插入截图

freesql sqlsugar 对比 sqlsugar dapper比较_sql_25

第二台电脑100条10列以下插入截图

freesql sqlsugar 对比 sqlsugar dapper比较_数据_26

第二台电脑500条10列以下插入截图

freesql sqlsugar 对比 sqlsugar dapper比较_freesql sqlsugar 对比_27

第二台电脑1000条10列以下插入截图

freesql sqlsugar 对比 sqlsugar dapper比较_sql_28

第二台电脑5000条10列以下插入截图

freesql sqlsugar 对比 sqlsugar dapper比较_ORM_29

第二台电脑10000条10列以下插入截图

freesql sqlsugar 对比 sqlsugar dapper比较_sql_30

第二台电脑50000条10列以下插入截图

freesql sqlsugar 对比 sqlsugar dapper比较_sql_31

第二台电脑100000条10列以下插入截图

freesql sqlsugar 对比 sqlsugar dapper比较_freesql sqlsugar 对比_32

第二台电脑5条50列插入截图

freesql sqlsugar 对比 sqlsugar dapper比较_数据_33

第二台电脑50条50列插入截图

freesql sqlsugar 对比 sqlsugar dapper比较_数据_34

第二台电脑100条50列插入截图

freesql sqlsugar 对比 sqlsugar dapper比较_数据_35

第二台电脑500条50列插入截图

freesql sqlsugar 对比 sqlsugar dapper比较_ORM_36

第二台电脑1000条50列插入截图

freesql sqlsugar 对比 sqlsugar dapper比较_sql_37

第二台电脑5000条50列插入截图

freesql sqlsugar 对比 sqlsugar dapper比较_freesql sqlsugar 对比_38

第二台电脑10000条50列插入截图

freesql sqlsugar 对比 sqlsugar dapper比较_freesql sqlsugar 对比_39

第二台电脑50000条50列插入截图

freesql sqlsugar 对比 sqlsugar dapper比较_数据_40

第二台电脑100000条50列插入截图

freesql sqlsugar 对比 sqlsugar dapper比较_sql_41

测试电脑配置

两台一模一样配置电脑

第一台电脑配置

内存,CPU 相关配置

freesql sqlsugar 对比 sqlsugar dapper比较_sql_42

sqlserver 版本信息

freesql sqlsugar 对比 sqlsugar dapper比较_数据_43

第二台电脑配置

内存,CPU 相关配置

freesql sqlsugar 对比 sqlsugar dapper比较_freesql sqlsugar 对比_44

sqlserver 版本信息

freesql sqlsugar 对比 sqlsugar dapper比较_ORM_45

总结

本测试结果仅作参考,在不同的电脑环境可能体现出来的测试结果可能有差异,但整体排名差不大