您的位置:首页 > 大数据

SqlBulkCopy 高效、大数据量复制数据

2015-08-11 17:45 183 查看
SqlBulkCopy存储大批量的数据非常的高效,就像这个方法的名字一样,可以将内存中的数据表直接的一次性的存储到数据库中,而不需要一次一次的向数据库Insert数据。初次实验,百万级别的数据表,也只需几秒时间内就可以完全的存入数据库中,其速度,比传统的Insert方法不止快很多倍。

SqlBulkCopy 使用示例:

public void SqlBulkCopyDomo()
{
Dal.DalSql dal = new Dal.DalSql();

//获取源数据
string gongPanSql = @" select a,b,c,d  from T where 条件过滤";
DataTable dtGongPan = dal.QueryByFind(gongPanSql).Tables[0];//sql帮助类

//数据复制
using (SqlConnection conn = new SqlConnection(SqlConnString))
{
// Open the connection.
conn.Open();

using (SqlBulkCopy bulkCopy = new SqlBulkCopy(conn))
{
// 设置目标表名称
bulkCopy.DestinationTableName = "HouseBase";
bulkCopy.BulkCopyTimeout = 3600;//超时时间设置
bulkCopy.BatchSize = 1000;//分批提交记录数,可不设

// 列名映射    	bulkCopy.ColumnMappings.Add("源数据列", "目标表对应列名称");
bulkCopy.ColumnMappings.Add("a", "HouseCode");
bulkCopy.ColumnMappings.Add("b", "CommName");
bulkCopy.ColumnMappings.Add("c", "FenQiName");
bulkCopy.ColumnMappings.Add("d", "Seat");
//复制数据
bulkCopy.WriteToServer(dtGongPan);
}

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: