要求将Excel数据,大批量的导入到数据库中,尽量少的访问数据库,高性能的对数据库进行存储。

一个比较好的解决方案,就是采用SqlBulkCopy来处理存储数据。

SqlBulkCopy存储大批量的数据非常的高效,就像这个方法的名字一样,可以将内存中的数据表直接的一次性的存储到数据库中,而不需要一次一次的向数据库Insert数据。

初次实验,百万级别的数据表,也只需几秒时间内就可以完全的存入数据库中,其速度,比传统的Insert方法不止快很多倍。下面,我将用代码,介绍其用法。

        #region SqlBulkCopy
/// <summary>
/// SqlBulkCopy
/// </summary>
/// <param name="connectionString">目标连接字符</param>
/// <param name="TableName">目标表</param>yyy
/// <param name="dt">源数据</param>
public static void SqlBulkCopyByDatatable(string TableName, DataTable dt,string ConnectionStrings="")
{
if (string.IsNullOrWhiteSpace(ConnectionStrings))
{
ConnectionStrings = System.Configuration.ConfigurationManager.ConnectionStrings["KTGJVIPHallDBConnection"].ToString();
}
using (SqlConnection conn = new SqlConnection(ConnectionStrings))
{
using (SqlBulkCopy sqlbulkcopy = new SqlBulkCopy(ConnectionStrings, SqlBulkCopyOptions.UseInternalTransaction))
{
try
{
sqlbulkcopy.DestinationTableName = TableName;
for (int i = ; i < dt.Columns.Count; i++)
{
sqlbulkcopy.ColumnMappings.Add(dt.Columns[i].ColumnName, dt.Columns[i].ColumnName);
}
sqlbulkcopy.WriteToServer(dt);
}
catch (System.Exception ex)
{
throw ex;
}
}
}
}
#endregion
}

将内存中个DataTable 数据一次性的存入数据库中,只要内存中的数据表格的结构跟数据库中的表格结构一样,就可以了,如果数据库中包含自增列字段,我们可以不需要在内存表中定义,当数据保存到数据库中的时候,自增列会自动生成数据的。

【数据处理】SQL Server高效大数据量存储方案SqlBulkCopy的更多相关文章

  1. sql server 2005 大数据量插入性能对比

    sql server 2005大数据量的插入操作 第一,写个存储过程,传入参数,存储过程里面是insert操作, 第二,用System.Data.SqlClient.SqlBulkCopy实例方法, ...

  2. MySQL数据库如何解决大数据量存储问题

    利用MySQL数据库如何解决大数据量存储问题? 各位高手您们好,我最近接手公司里一个比较棘手的问题,关于如何利用MySQL存储大数据量的问题,主要是数据库中的两张历史数据表,一张模拟量历史数据和一张开 ...

  3. 利用MySQL数据库如何解决大数据量存储问题?

    提问:如何设计或优化千万级别的大表?此外无其他信息,个人觉得这个话题有点范,就只好简单说下该如何做,对于一个存储设计,必须考虑业务特点,收集的信息如下:1.数据的容量:1-3年内会大概多少条数据,每条 ...

  4. MySQL数据库解决大数据量存储问题

    转载自:https://www.cnblogs.com/ryanzheng/p/8334915.html 提问:如何设计或优化千万级别的大表?此外无其他信息,个人觉得这个话题有点范,就只好简单说下该如 ...

  5. SQL Server 快速大数据排序方法

    SQL Server 中虽然有 ORDER BY NewID() 方法,但对于数据量比较大的结果集来说,排序那慢的可不是一星半点. 微软官方给了一种方案,https://msdn.microsoft. ...

  6. SQL Server 2012大数据导入Oracle的解决方案

    在实际工作中需要把SQL Server中的表导入Oracle.之前尝试过直接用SQL Server的DTS进行都没问题.但这次因为数据量在千万级所以报虚拟内存不足.最后通过SQL Server导出tx ...

  7. SQL Server表的数据量大小查询

    今天想在服务器上还原一个DB,发现磁盘空间不够,查看发现,其中一个DB竟然有56G了.因此想收缩一下这个DB,发现大小没多大变化.然后在网上找了找SQL脚本,看能不能查看下哪个表的数据量那么大. 网上 ...

  8. SQL Server 导入大数据脚本

    .先使用win+r运行cmd .执行osql -S DESKTOP-RGBEDS3 -U sa -P liyang -d FGCPOE_十院 -i D:\数据库\script.sql 即可!

  9. java大数据量调优

    从总体上来看,对于大型网站,比如门户网站,在面对大量用户访问.高并发请求方面,基本的解决方案集中在这样几个环节:1.首先需要解决网络带宽和Web请求的高并发,需要合理的加大服务器和带宽的投入,并且需要 ...

随机推荐

  1. Unity GUI(uGUI)使用心得与性能总结

    Unity GUI(uGUI)使用心得与性能总结 作者 kingshijie 关注 2015.09.26 15:35 字数 3686 阅读 28031评论 10喜欢 49 背景和目的 小哈接触Unit ...

  2. JNDI 在 J2EE 中的角色

    JNDI 在 J2EE 中的角色 Spring整合HIbernate时,三种数据库连接池的配置和比较 Tomcat 6 JNDI数据源详解 Tomcat 6 --- JNDI详解 Spring整合HI ...

  3. Throwable vs Exception

    Throwable中的Error是不需要程序处理的. Exception是需要处理的.

  4. VC设置cookies实现文件刷下载量

    VC设置cookies实现文件刷下载量 VC设置cookies实现文件刷下载量 分类: c/c++2013-10-11 17:22 250人阅读 评论(0) 收藏 举报   目录(?)[+]   同学 ...

  5. (第3篇)HDFS是什么?HDFS适合做什么?我们应该怎样操作HDFS系统?

    摘要: 这篇文章会详细介绍HDFS是什么,HDFS的作用,适合和不适合的场景,我们该如何操作HDFS?   HDFS文件系统 Hadoop 附带了一个名为 HDFS(Hadoop分布式文件系统)的分布 ...

  6. JS组件系列——表格组件神器:bootstrap table 包含了js对象的定义和对象成员函数的定义

    前言:之前一直在忙着各种什么效果,殊不知最基础的Bootstrap Table用法都没有涉及,罪过,罪过.今天补起来吧.上午博主由零开始自己从头到尾使用了一遍Bootstrap Table ,遇到不少 ...

  7. phpstorm + x-debug 进行php调试

    参照http://www.cnblogs.com/tippoint/p/3429092.html 进行安装xdebug: 首先自己写一个打印php的页面,将phpinfo 拷贝到下面的框内进行分析. ...

  8. 【12月06日】A股全市场情绪指标整理分析

    1. A股全市场的股权质押比例 2018年11月30日,A股全市场,质押股数占全市场总股本数比:9.997%,最近2周出现了3.2%的轻微回落.同历史时期相比,仍然处于高位. 2. A股全市场的解禁市 ...

  9. java登录央行征信网站

    package com.entrym.crawler.test; import java.util.HashMap; import java.util.Map; import org.apache.c ...

  10. scrapy 元素的相对xpath