C#:30行数据插入到数据库中的效率测试-一行行执行、构造SQL一次执行、SqlBulkCopy

来源:互联网 发布:心怀大局 知责有为 编辑:程序博客网 时间:2024/06/05 17:41

做这个测试的起因是看到这样一个帖子:

 

 

GridView中有30條記錄: 


產品編號         產品名稱                 產品價格 

001                   男士活力潔面乳     39 

002                   男士剃鬚刀             109 

...... 

030                   男士沐浴香波         120 


有兩种方法寫入數據庫: 

(1) 


打開數據庫連接 

逐條插入數據 

關閉連接 


(2) 

拼湊出更新數據的SQL語句 

打開數據庫連接 

執行這條拼湊的SQL語句 

關閉數據庫連接 


請問哪一種效率更高?大概能高出多少? 


另外,在ASP.NET   2.0中,有SqlBulkCopy類,它能完全取代普通的ADO.NET操作嗎? 

 

 

测试代码:

 

 

表:

CREATE TABLE [dbo].[TestTable](

[ID] [int] NULL,

[CreateDateTime] [datetime] NULL,

[TestMethod] [nvarchar](50) NULL

) ON [PRIMARY]

 

 

 

C#代码

 

 

测试结果:

 

第一次执行
ExecuteRowByRow:151ms
ExecuteOnce:19ms
ExecuteSqlBulkCopy:5ms
 

 

 

第二次执行
ExecuteRowByRow:140ms
ExecuteOnce:15ms
ExecuteSqlBulkCopy:6ms

 

 

 

第三次执行
ExecuteRowByRow:179ms
ExecuteOnce:18ms
ExecuteSqlBulkCopy:5ms
 

 

 虽然测试方法比较简单,但基本能说明问题了。

 

原创粉丝点击