.NET批量大数据插入性能分析及比较(4.使用DataAdapter批量插入)
2011-05-04 13:16
330 查看
#region 使用DataAdapter public static bool ExecuteDataAdapterInsert(DataTable dt, int batchSize) { int count = dt.Rows.Count; bool flag = false; try { SqlConnection cn = new SqlConnection(connectionString); SqlCommand cmd = new SqlCommand("Insert into TestTable(Id, Name) Values(@Id, @Name)", cn); cmd.Parameters.Add("@Id", SqlDbType.Int, 4, "Id"); cmd.Parameters.Add("@Name", SqlDbType.NVarChar, 20, "Name"); cmd.UpdatedRowSource = UpdateRowSource.None; SqlDataAdapter da = new SqlDataAdapter(); da.InsertCommand = cmd; da.UpdateBatchSize = batchSize; cn.Open(); da.Update(dt); cn.Close(); flag = true; } catch (Exception ex) { LogHelper.Error(ex.Message); return false; } return flag; } #endregion
结果如下:
Use SqlServer DataAdapter Insert;RecordCount:40000;BatchSize:10;Time:21569;
Use SqlServer DataAdapter Insert;RecordCount:40000;BatchSize:20;Time:19607;
Use SqlServer DataAdapter Insert;RecordCount:40000;BatchSize:50;Time:19647;
Use SqlServer DataAdapter Insert;RecordCount:40000;BatchSize:100;Time:18649;
Use SqlServer DataAdapter Insert;RecordCount:40000;BatchSize:200;Time:21823;
测试的结果让我比较失望,SqlDataAdapter会为每个修改行发送一条T-SQL命令,所以效率并不高。
而且再其他的方式中,都可以进行异步处理,SqlDataAdapter的Update()方法并不支持异步的结果,所以此方法不推荐
全文链接:
.NET批量大数据插入性能分析及比较(1.准备工作)
.NET批量大数据插入性能分析及比较(2.普通插入与拼接sql批量插入)
.NET批量大数据插入性能分析及比较(3.使用事务)
.NET批量大数据插入性能分析及比较(4.使用DataAdapter批量插入)
.NET批量大数据插入性能分析及比较(5.使用SqlBulkCopy)
.NET批量大数据插入性能分析及比较(6.使用表值参数)
相关文章推荐
- .NET批量大数据插入性能分析及比较(4.使用DataAdapter批量插入)
- .NET批量大数据插入性能分析及比较(5.使用SqlBulkCopy)
- .NET批量大数据插入性能分析及比较(6.使用表值参数)
- .NET批量大数据插入性能分析及比较(6.使用表值参数)
- .NET批量大数据插入性能分析及比较(3.使用事务)
- .NET批量大数据插入性能分析及比较(5.使用SqlBulkCopy)
- .NET批量大数据插入性能分析及比较(3.使用事务)
- .NET批量大数据插入性能分析及比较(5.使用SqlBulkCopy)
- .NET批量大数据插入性能分析及比较
- .NET批量大数据插入性能分析及比较(2.普通插入与拼接sql批量插入)
- .NET批量大数据插入性能分析及比较
- NET批量大数据插入性能分析及比较
- .NET批量大数据插入性能分析及比较(2.普通插入与拼接sql批量插入)
- .NET批量大数据插入性能分析及比较(1.准备工作)
- .NET批量大数据插入性能分析及比较(1.准备工作)
- .NET批量大数据插入性能分析及比较(6.使用表值参数)
- MySQL大量数据插入各种方法性能分析与比较
- Java使用Arrays、ArrayList、LinkedList、Vector实现插入查询性能分析
- 使用火焰图分析CPU性能回退问题
- 支持泛型AVL Tree的简单实现,并和STL map比较了插入,删除,查找的性能