mssqlServer大量数据快速插入:SqlBulkCopy
SqlBulkCopy类,为微软的一个大量数据快速插入。直接上代码
表结构:

namespace SqlBulkCopy的演示
{
using System.Data.SqlClient; public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
//string connString = "server=.;database=CrmChat14;uid=sa;pwd=master;";
string connString = "server=.;database=MyData;Integrated Security=True;"; //0.0 准备一个DataTable内存表,向这个表中增加10000条数据
DataTable dt = new DataTable();
//在dt中一定要按照DestinationTableName对应的表结构来进行创建
//但是:自增ID,可以不建立
dt.Columns.Add("dd", typeof(string)); //构造1W条数据
int count = * ; for (int i = ; i < count; i++)
{
//根据dt的表结构创建一个同结构的DataRow对象
DataRow row = dt.NewRow();
//给row中的dd字段赋值
row["dd"] = "测试" + i;
//将row对象添加到内存表dt中
dt.Rows.Add(row);
} //统计下面代码的执行时间:
System.Diagnostics.Stopwatch st = new System.Diagnostics.Stopwatch();
st.Start();
//1.0 实例化sqlbulkcopy的对象
using (SqlBulkCopy copy = new SqlBulkCopy(connString))
{
//告诉copy对象按照指定的5000条数据量来进行插入
//如果这个数据太庞大的话,一定要加上BatchSize 来分配处理
copy.BatchSize = ; //告诉copy将dt中的数据插入到数据库CrmChat14中的SqlBulkCopyDemo表
copy.DestinationTableName = "SqlBulkCopyDemo"; //告诉copy dt内存表中的dd列对应的是SqlBulkCopyDemo表中的BName,他们之间一定要有一个映射
copy.ColumnMappings.Add("dd", "BName"); //2.0 将数据批量的插入到db中
copy.WriteToServer(dt);
} st.Stop(); MessageBox.Show("插入" + count + "条数据,耗时:" + st.ElapsedMilliseconds + "毫秒");
}
}
}
结果:

SqlBulkCopy的本质,是用的INSERT bulk插入的数据。
mssqlServer大量数据快速插入:SqlBulkCopy的更多相关文章
- SqlBulkCopy实现大容量数据快速插入数据库中
一般情况下,我们手写sqlhelper类,在此类中定义一个数据插入到数据库的一个方法.将数据库连接密封在using()的语句中.using显示了Idispose接口.可以及时释放数据库连接资源.代码如 ...
- [Oracle]快速插入大量(100w)数据
背景:无论在开发调试或者软件测试中,测试数据的准备是调试/测试执行前重要和必要的一个环节,因此以下几种方式可以快速插入大量数据: 第一种方法: declare -- Local variables ...
- Presto向分区表快速插入数据时出现'target directory already exists'的原因
因为项目使用Presto作为ETL使用,需要将关系库中的数据导入到Hive中.目前关系库中的数据每天导入一次,在Hive中以天为间隔创建新的分区.思路是正确的,但是在使用的过程中,发现将少量关系库中的 ...
- MySQL 大数据量快速插入方法和语句优化
MySQL大数据量快速插入方法和语句优化是本文我们主要要介绍的内容,接下来我们就来一一介绍,希望能够让您有所收获! INSERT语句的速度 插入一个记录需要的时间由下列因素组成,其中的数字表示大约比例 ...
- Oracle快速插入数据append
1:用merge into 进行匹配更新和插入,2: 开启并行,提高速度3: 如果可以的话加NOLOGING 不写入日志4:如果数据有规律的话,分批次执行 1.使用marge快速插入; MERGE / ...
- SqlBulkCopy将DataTable中的数据批量插入数据库中
#region 使用SqlBulkCopy将DataTable中的数据批量插入数据库中 /// <summary> /// 注意:DataTable中的列需要与数据库表中的列完全一致.// ...
- 【C#-批量插入数据到数据库】DataTable数据批量插入数据的库三种方法:SqlCommand.EcecuteNonQurery(),SqlDataAdapter.Update(DataTable) ,SqlBulkCopy.WriteToServer(Datatable)
第一种方法:使用SqlCommand.EcecuteNonQurery() 效率最慢 第二种方法:使用SqlDataAdapter.Update(DataTable) 效率次之 第三种方法:使用 ...
- list转datatable,SqlBulkCopy将DataTable中的数据批量插入数据库
/// <summary> /// 将泛类型集合List类转换成DataTable /// </summary> /// <param name="list&q ...
- orcle 如何快速插入百万千万条数据
有时候做实验测试数据用到大量数据时可以用以下方法插入: 方法一:使用xmltable create table bqh8 as select rownum as id from xmltable('1 ...
随机推荐
- [GO]简单的并发服务器
package main import ( "net" "fmt" "strings" ) func HandleConn(conn net ...
- Primer 三四五章
序言 看了看表,再看了看书,2个小时就没啦(又到了吃中饭的时间,O(∩_∩)O哈哈~).一个上午感觉啥也没干呢,不过还是从书上看到了一些东西,对于这些基础的知识,还是有些东西没有记得很深,所以还是花了 ...
- IE6,7,8 CSS HACK
1.区别IE和非IE浏览器CSS HACK代码 #divcss5{ background:blue; /*非IE 背景藍色*/ background:red \9; /*IE6.IE7.IE8背景紅色 ...
- RegularExpression
目录 文章背景 目录 概述 基本概念 目的 特点 符号 实例 说明 参考文章 版本记录 layout: default title: RegularExpression category: [Tech ...
- python读写操作csv及excle文件
1.python读写csv文件 import csv #读取csv文件内容方法1 csv_file = csv.reader(open('testdata.csv','r')) next(csv_fi ...
- 用阿里巴巴官方给Jmeter开发的Dubbo sampler取样器进行dubbo接口测试【图解剖析】
自:https://blog.csdn.net/cyjs1988/article/details/84258046 [一]Dubbo sampler下载地址: 该插件支持jmeter 3.2及3.2以 ...
- mysql查询最近7天的数据,没有数据自动补0
问题描述 查询数据库表中最近7天的记录 select count(*),date(create_time) as date from task where datediff(now(),create_ ...
- <a>标签的用法以及[@text_cut]
<a href="${a.url}" target="_blank">[@text_cut s=a.title len=titLen append= ...
- Delphi 10.1.2 berlin开发跨平台APP的几点经验
1.ios不允许app有退出功能,所以不能调用Application.Terminate. 2.info.plist文件的自定义:info.plist文件是由info.plist.TemplateiO ...
- (原创)Log4Net 在多层项目中的使用小记
这几天刚好在调整一个项目,把一些自己不是很清楚的东西先试验一下,这篇文章主要是对我在项目中需要使用Log4Net的一些记录.网上有很多相关的教程,但是各有各的说法,我结合我自己这个项目的需要,首先,项 ...