DataAdapter和SqlBulkCopy的插入性能测试

来源:互联网 发布:绵阳广电网络宽带 编辑:程序博客网 时间:2024/06/17 06:29

DataAdapter 的插入代码

  public static bool UpdateDataSet(SqlConnection con, DataSet dataset, string tableName)        {            string sql = string.Format(@"select * from {0} where 1=0", tableName);            using (SqlDataAdapter da = new SqlDataAdapter(sql,con))            {                DataSet ds = new DataSet();                da.Fill(ds,tableName);                SqlCommandBuilder cb = new SqlCommandBuilder(da);                da.InsertCommand = cb.GetInsertCommand();                ds = dataset;               return da.Update(ds, tableName)>0;            }        }

耗时:
DataAdapter插入执行耗时

SqlBulkCopy的插入代码

  public static void DataSetInsert(SqlConnection con,string tableName,DataSet ds)        {            SqlBulkCopy sbc = new SqlBulkCopy(con);            sbc.DestinationTableName = tableName;            sbc.BatchSize = ds.Tables[0].Rows.Count;            sbc.WriteToServer(ds.Tables[0]);        }

耗时:
SqlBulkCopy插入耗时

结论

结果显而易见,使用SqlBulkCopy进行性批量插入更加简单有效。
0 0
原创粉丝点击