.Net批量插入数据到SQLServer数据库,SqlBulkCopy类批量插入大数据到数据库

批量的的数据导入数据库中,尽量少的访问数据库,高性能的对数据库进行存储。

采用SqlBulkCopy来处理存储数据。SqlBulkCopy存储大批量的数据非常的高效,将内存中的数据表直接的一次性的存储到数据库中,而不需要一次一次的向数据库Insert数据。

经过几次实验,百万级别的数据表,也只需几秒时间内就可以完全的存入数据库中,其速度,比传统的Insert into方法不止快很多倍。

下面看代码:

        /// <summary>
        /// 批量插入数据
        /// </summary>
        /// <param name="connectionString">连接数据库字符串</param>
        /// <param name="tableName">表名称</param>
        /// <param name="dt">需要批量插入数据库DataTable数据源</param>
        /// <param name="bulkCopyTimeout">连接数据库的溢出时间</param>
        /// <returns></returns>
        public static bool SqlBulkCopyByDatatable(string connectionString, string tableName, DataTable dt, int bulkCopyTimeout = 120)
        {
            try
            {
                using (SqlBulkCopy sqlbulkCopy = new SqlBulkCopy(connectionString, SqlBulkCopyOptions.UseInternalTransaction))
                {
                    sqlbulkCopy.DestinationTableName = tableName;
                    sqlbulkCopy.BulkCopyTimeout = bulkCopyTimeout;
                    for (int i = 0; i < dt.Columns.Count; i++)
                    {
                        sqlbulkCopy.ColumnMappings.Add(dt.Columns[i].ColumnName, dt.Columns[i].ColumnName);
                    }
                    sqlbulkCopy.WriteToServer(dt);
                    sqlbulkCopy.Close();//关闭连接
                    return true;
                }
            }
            catch (System.Exception ex)
            {
                throw ex;
            }

        }

        /// <summary>
        /// 批量插入数据
        /// </summary>
        /// <param name="connectionString">连接数据库字符串</param>
        /// <param name="tableName">表名称</param>
        /// <param name="dt">需要批量插入数据库DataTable数据源</param>
        /// <param name="batchSize">一次批量插入多少条数据</param>
        /// <param name="bulkCopyTimeout">连接数据库的溢出时间</param>
        /// <returns></returns>
        public static bool SqlBulkCopyByDatatable(string connectionString, string tableName, DataTable dt, int batchSize,int bulkCopyTimeout=120)
        {
            try
            {
                using (SqlBulkCopy sqlbulkCopy = new SqlBulkCopy(connectionString, SqlBulkCopyOptions.UseInternalTransaction))
                {
                    sqlbulkCopy.BatchSize = batchSize;
                    sqlbulkCopy.DestinationTableName = tableName;
                    sqlbulkCopy.BulkCopyTimeout = bulkCopyTimeout;
                    for (int i = 0; i < dt.Columns.Count; i++)
                    {
                        sqlbulkCopy.ColumnMappings.Add(dt.Columns[i].ColumnName, dt.Columns[i].ColumnName);
                    }
                    sqlbulkCopy.WriteToServer(dt);
                    sqlbulkCopy.Close();//关闭连接
                    return true;
                }
            }
            catch (System.Exception ex)
            {
                throw ex;
            }

        }
时间: 2024-09-30 10:53:20

.Net批量插入数据到SQLServer数据库,SqlBulkCopy类批量插入大数据到数据库的相关文章

大数据十年回顾(1):大数据史前的数据库发展

是当前最热的技术之一,这十年它经历了哪些阶段?每个阶段分别创造和发展了什么?未来大数据又将朝着哪些方向继续前行?在这篇文章里,我们沿大数据发展时间线,从产品.行业.技术多角度讨论其发展脉络,究其发展承其脉络大家可以学习.借鉴.并最终推测未来大致走向. ? 引子 我一直认为大数据中文社区里面不乏各类技术大牛所著深度架构干货,同时亦不乏各类技术的总监 /VP/CXO 高屋建瓴指点行业江山的激情文字,所缺的往往是站在技术.产品.社区.市场交汇点的思考点滴.有如我经常在我部门中所说,中国当前不乏各类云计

中科院 | 大数据的力量来自“大成智慧”信息时代大数据的再认识

文章出处:http://www.thebigdata.cn/YeJieDongTai/29119.html 大数据已成为媒体与大众关注的新技术,大数据的应用也预示着信息时代将进入一个新阶段,但人们对大数据的认识有一个不断加深的过程.首先从"信息时代新阶段".数据文化和认识论的高度阐述了对大数据的理解;接着通过对驱动效益和大成智慧的解释,探讨了如何正确认识大数据的价值和效益,并从复杂性的角度分析了大数据研究和应用面临的挑战;最后对发展大数据应避免的误区提出几点看法. 1 大数据兴起预示&

消费大数据公司“重分析-强应用”引领企业大数据营销

近日,消费大数据公司信柏科技树立"大数据-重分析-强应用"理念发布新一代大数据业务平台,以大数据为基础.软硬件结合的方案来辅助企业进行经营决策与精准营销.该大数据业务平台定位于"人群 ."内容"."行业 "与"地域"精准分析与挖掘,覆盖到企业营销中较为关注的用户特征画像.精准人群标定.定向数据采集内容监听 .采集内容的关联分析.行业报告与市场动态.竞品分析.新店开张选址报告.指定地区常驻人群特征分析等业务,致力于成为

大数据学习笔记6&#183;社会计算中的大数据(4)

上一篇介绍了LifeSpec项目,这个项目是关于用户理解和用户画像的.这篇是社会计算部分的最后一篇,关于用户连接和图隐私. 用户连接与隐私保护 用户连接与隐私保护有很强的相关性. 上图中,左边有两个网络.对于用户连接,我们的目标是映射这两个网络和连接这些网络中的用户节点.然后,我们就能产生一个更大的网络.这样,用户就能够被连接在一起,我们就可以知道跨网络的用户信息. 但是,如果从隐私的角度来看这个问题,把第一个图看成一个匿名化处理后的图,称其为目标图:把第二张图看成辅助图或者攻击者可获得的信息.

大数据架构和模式(五)——对大数据问题应用解决方案模式并选择实现它的产品

摘要:本文使用了一个基于场景的方法,概述了可能有助于定义大数据解决方案的解决方案模式.每个场景都从一个业务问题开始,并说明为什么需要大数据解决方案.本文会将一个具体的解决方案模式(由原子模式和复合模式组成)应用到业务场景.这个逐步分析的方法有助于用户确定解决方案所需的组件.在文章的末尾,提供了一些建议使用的典型产品和工具. 简介 本系列的 第 3 部分 描述了针对最常见的.经常发生的大数据问题及其解决方案的原子模式和复合模式.本文将推荐可以用于架构大数据解决方案的三个解决方案模式.每个解决方案模

大数据架构和模式(五)对大数据问题应用解决方案模式并选择实现它的产品

作者: Divakar等  来源: DeveloperWorks  发布时间: 2015-01-29 18:22  阅读: 1073 次  推荐: 2   原文链接   [收藏] 摘要:本文使用了一个基于场景的方法,概述了可能有助于定义大数据解决方案的解决方案模式.每个场景都从一个业务问题开始,并说明为什么需要大数据解决方案.本文会将一个具体的解决方案模式(由原子模式和复合模式组成)应用到业务场景.这个逐步分析的方法有助于用户确定解决方案所需的组件.在文章的末尾,提供了一些建议使用的典型产品和工

大数据学习:hive篇,入门学习大数据开发

大数据开发之路漫漫其修远兮,吾将上下而求索.对于很多入门学习大数据开发的小伙伴,可能第一个接触到的,是我们的大数据领域的数据仓库工具hive.在大数据生态中,hive一般作为数据仓库来使用. Hive本身是不做数据存储的,它是构建在分布式存储系统HDFS之上,我们平常看到的表数据其实本质上来说还是HDFS的文件. Hive把这些HDFS数据文件,通过元数据规则映射为数据库的表,并且可以提供SQL操作的功能.Hive总体结构比较简单,总体有三个组件:用户接口.元数据系统.驱动器.用户通过用户接口来

大数据高冷?10个有趣的大数据经典案例

马云说:互联网还没搞清楚的时候,移动互联就来了,移动互联还没搞清楚的时候,大数据就来了.近两年,“大数据”这个词越来越为大众所熟悉,“大数据”一直 是以高冷的形象出现在大众面前,面对大数据,相信许多人都一头雾水.下面我们通过十个经典案例,让大家实打实触摸一把“大数据”.你会发现它其实就在身边 而且也是很有趣的. 啤酒与尿布 全 球零售业巨头沃尔玛在对消费者购物行为分析时发现,男性顾客在购买婴儿尿片时,常常会顺便搭配几瓶啤酒来犒劳自己,于是尝试推出了将啤酒和尿布摆在一起的 促销手段.没想到这个举措

大数据发展平台:成都大数据产业调研小组莅临加米谷大数据调研

加米谷学院消息: 7月4日下午,成都市新经济委.成都市大数据产业调研小组莅临加米谷大数据调研指导,加米谷大数据创始人张安文.张衡积极配合大数据产业调研小组,进行关于"成都市大数据企业发展状况.存在问题"的考察调研活动,为加快推进大数据产业发展,为科学制定相关政策提供见解和建议. 加米谷大数据创始人与调研小组交谈 本次调研,是成都市为加快推进大数据产业,为科学制定大数据相关政策而进行的活动调查.加米谷大数据作为成都市大数据人才培养的重点机构之一,成为本次的调研调查对象之一. 发展成都市大