From 3908ceb89b86fbca398228507805a42620d1aea7 Mon Sep 17 00:00:00 2001 From: 28810 <28810@YEXIANGQIN> Date: Mon, 23 Dec 2019 19:39:29 +0800 Subject: [PATCH] update --- 添加.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/添加.md b/添加.md index af8962d..2e16850 100644 --- a/添加.md +++ b/添加.md @@ -58,6 +58,32 @@ var t2 = insert.AppendData(items).ToSql(); FreeSql 适配了每一种数据类型参数化,和不参数化的使用。批量插入建议关闭参数化功能,使用 .NonoParameter() 进行执行。 +## ExecuteSqlBulkCopy、ExecutePgCopy + +v1.0.0 版本增加了 Bulk Copy 操作,以扩展方法的形式现实,目前只能在 FreeSql.Provider.SqlServer/FreeSql.Provider.PostgreSQL 上可用,针对 SqlServer/PostgreSQL 数据库。 + +### 批量插入测试结果(52个字段) + +| | 18W | 1W | 5K | 2K | 1K | 500 | 100 | 50 | +| -- | -- | -- | -- | -- | -- | -- | -- | -- | +| SqlServer Express ExecuteAffrows | 402,355 | 24,847 | 11,465 | 4,971 | 2,437 | 915 | 138 | 88 | +| SqlServer Express ExecuteSqlBulkCopy | 21,065 | 578 | 326 | 139 | 105 | 79 | 60 | 48 | +| PostgreSQL 10 ExecuteAffrows | 46,756 | 3,294 | 2,269 | 1,019 | 374 | 209 | 51 | 37 | +| PostgreSQL 10 ExecutePgCopy | 10,090 | 583 | 337 | 136 | 88 | 61 | 30 | 25 | + +> 18W 解释:插入18万行记录,表格中的数字是执行时间(单位ms) + +### 批量插入测试结果(10个字段) + +| | 18W | 1W | 5K | 2K | 1K | 500 | 100 | 50 | +| -- | -- | -- | -- | -- | -- | -- | -- | -- | +| SqlServer Express ExecuteAffrows | 47,204 | 2,275 | 1,108 | 488 | 279 | 123 | 35 | 16 | +| SqlServer Express ExecuteSqlBulkCopy | 4,248 | 127 | 71 | 30 | 48 | 14 | 11 | 10 | +| PostgreSQL 10 ExecuteAffrows | 9,786 | 568 | 336 | 157 | 102 | 34 | 9 | 6 | +| PostgreSQL 10 ExecutePgCopy | 4,081 | 167 | 93 | 39 | 21 | 12 | 4 | 2 | + +> 测试结果,是在相同操作系统下进行的,并且都有预热 + ## 只想插入指定的列 ```csharp