之前常用到BulkCopy來塞DB
忽然心血來潮來比較一下逐筆塞BulkCopy 差多少
DataSet dSet = new DataSet();
dSet = ..........;
//記錄總筆數
ToolClass.Write_LogTxt_Info("JOB_info", "dSet_Table_Row Count:", dSet.Tables[0].Rows.Count.ToString());
//記錄開始時間
ToolClass.Write_LogTxt_Info("JOB_info", "For_start", DateTime.Now.ToString());
for (int i = 0; i < dSet.Tables[0].Rows.Count; i++)
{
insert into ......;
}
//記錄結束時間
ToolClass.Write_LogTxt_Info("JOB_info", "For_end", DateTime.Now.ToString());
//記錄BulkCopy開始時間
ToolClass.Write_LogTxt_Info("JOB_info", "SqlBulkCopy_start", DateTime.Now.ToString());
DataTable Dt = dSet.Tables["XXXXXX"];
SqlConnection SqlConnection = new SqlConnection(ToolClass.GetConfigurationSettingsKey("SQL_Flowring").Trim());
SqlConnection.Open();
using (SqlBulkCopy sqlBulkCopy = new SqlBulkCopy(SqlConnection))
{
sqlBulkCopy.DestinationTableName = Dt.TableName;
foreach (var column in Dt.Columns)
sqlBulkCopy.ColumnMappings.Add(column.ToString(), column.ToString());
sqlBulkCopy.WriteToServer(Dt);
}
//記錄BulkCopy結束時間
ToolClass.Write_LogTxt_Info("JOB_info", "SqlBulkCopy_end", DateTime.Now.ToString());
--------------------------------------執行後(重複執行)-----------------------------------------------------------------
[2016/12/16 下午 02:19:25]:[dSet_Table_Row Count:] 8015
[2016/12/16 下午 02:19:25]:[For_start] 2016/12/16 下午 02:19:25
[2016/12/16 下午 02:19:29]:[For_end] 2016/12/16 下午 02:19:29
[2016/12/16 下午 02:19:29]:[SqlBulkCopy_start] 2016/12/16 下午 02:19:29
[2016/12/16 下午 02:19:30]:[SqlBulkCopy_end] 2016/12/16 下午 02:19:30
[2016/12/16 下午 02:19:50]:[dSet_Table_Row Count:] 8015
[2016/12/16 下午 02:19:50]:[For_start] 2016/12/16 下午 02:19:50
[2016/12/16 下午 02:19:57]:[For_end] 2016/12/16 下午 02:19:57
[2016/12/16 下午 02:19:57]:[SqlBulkCopy_start] 2016/12/16 下午 02:19:57
[2016/12/16 下午 02:19:58]:[SqlBulkCopy_end] 2016/12/16 下午 02:19:58
[2016/12/16 下午 02:20:21]:[dSet_Table_Row Count:] 8015
[2016/12/16 下午 02:20:21]:[For_start] 2016/12/16 下午 02:20:21
[2016/12/16 下午 02:20:29]:[For_end] 2016/12/16 下午 02:20:29
[2016/12/16 下午 02:20:29]:[SqlBulkCopy_start] 2016/12/16 下午 02:20:29
[2016/12/16 下午 02:20:29]:[SqlBulkCopy_end] 2016/12/16 下午 02:20:29
[2016/12/16 下午 02:21:24]:[dSet_Table_Row Count:] 8015
[2016/12/16 下午 02:21:24]:[For_start] 2016/12/16 下午 02:21:24
[2016/12/16 下午 02:21:32]:[For_end] 2016/12/16 下午 02:21:32
[2016/12/16 下午 02:21:32]:[SqlBulkCopy_start] 2016/12/16 下午 02:21:32
[2016/12/16 下午 02:21:32]:[SqlBulkCopy_end] 2016/12/16 下午 02:21:32
[2016/12/16 下午 02:22:12]:[dSet_Table_Row Count:] 8015
[2016/12/16 下午 02:22:12]:[For_start] 2016/12/16 下午 02:22:12
[2016/12/16 下午 02:22:19]:[For_end] 2016/12/16 下午 02:22:19
[2016/12/16 下午 02:22:19]:[SqlBulkCopy_start] 2016/12/16 下午 02:22:19
[2016/12/16 下午 02:22:20]:[SqlBulkCopy_end] 2016/12/16 下午 02:22:20
發現BulkCopy真的快很多
但有利就有弊
BulkCopy 超難 debug