1.使用场景:经常在业务数据需要进行同步或者需要进行结算或者进行汇总的时候,我们往往需要将大量的明细数据,销售数据或者流水记录等数据导入到一个汇总的地方(一般是总部公司等)。 2.使用该类的组织架构情况: 一般为:销售组织将各种1中所述数据传至其管控的组织(如:销售门店或零售点或营业点 ------>分公司或销售总部等) 3.出现问题: 在做大批量数据插入的时候,如果用Insert into ... values (...)这种方式的话效率极低,一般统计来看,10万条数据都需要3到4分钟左右,50万条数据都快8分钟左右,100万条数据 的情况下一般都可能达到13-15分钟,这三项检测都通过Oracle检验过(sql大致一样),那么,我们如何来处理这种大理数据的迁移或者同步,回写呢?微软的.net内库中有一个sqlBulkcopy类 4.sqlBulkcopy类中有一个WriteToServer 方法,MSDN中介绍如下: 将所有行从数据源复制到 SqlBulkCopy 对象的 DestinationTableName 属性指定的目标表中。 5.现在开始测试: 测试思想: 1).先构建一个四个字段的表 表结构如下: CREATE TABLE [dbo].[A_Test]( 2).构建一个DataTable如下: //1000000条数据导入测试 3).开始计时,并开始做相关导入工作 DateTime dt1 = DateTime.Now; 4).查看结果: 该实验时间肯定比正常需要的时间多很多,因为我是在开发很多别的软件的情况下跑的(正常理想数据应该是4秒左右),但在此只想说明一个问题,如此在处理sqlserver的大量或海量数据的导入的时候,建议使用sqlbulkcopy这个类。。以提高程序的效率。有一篇博客可以看看: http://www.cnblogs.com/hunterllb/archive/2008/05/19/1202800.html, http://www.cnblogs.com/isline/archive/2010/03/18/1688783.html(这个比较经典)其方式更优,也很有意思
转自:http://hi.baidu.com/xyz136299110/blog/item/0f5ce8012a65c31f738b6530.html |
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。