close

之前常用到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  

arrow
arrow
    文章標籤
    c# BulkCopy
    全站熱搜
    創作者介紹
    創作者 JosephChou 的頭像
    JosephChou

    Joseph A-Sa-BLue

    JosephChou 發表在 痞客邦 留言(0) 人氣()