update

28810
2019-12-23 19:39:29 +08:00
parent f4dd8c9b17
commit 3908ceb89b

@@ -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