C#中使用SqlBulk百万级数据秒级插入

本文转自这篇文章,提供了一种较快的数据插入的思路,转过来做个记录。 

#region 
static void Insert()
{Console.WriteLine("使用Bulk插入的实现方式");Stopwatch sw = new Stopwatch();DataTable dt = GetTableSchema(); using (SqlConnection conn = new SqlConnection(StrConnMsg)){SqlBulkCopy bulkCopy = new SqlBulkCopy(conn);bulkCopy.DestinationTableName = "Product";bulkCopy.BatchSize = dt.Rows.Count;conn.Open();sw.Start();for (int i = 0; i < totalRow;i++ ){DataRow dr = dt.NewRow();dr[0] = Guid.NewGuid();dr[1] = string.Format("商品", i);dr[2] = (decimal)i;dt.Rows.Add(dr);}if (dt != null && dt.Rows.Count != 0){bulkCopy.WriteToServer(dt);sw.Stop();}Console.WriteLine(string.Format("插入{0}条记录共花费{1}毫秒,{2}分钟", totalRow, sw.ElapsedMilliseconds, GetMinute(sw.ElapsedMilliseconds)));}
}
static DataTable GetTableSchema()
{DataTable dt = new DataTable();dt.Columns.AddRange(new DataColumn[] {   new DataColumn("Id",typeof(Guid)),  new DataColumn("Name",typeof(string)),  new DataColumn("Price",typeof(decimal))});return dt;
}
#endregion

运行结果如下: 

插入100w条记录才8s多。打开Sqlserver Profiler跟踪,会发现执行的是如下语句: 

insert bulk Product ([Id] UniqueIdentifier, [NAME] VarChar(50) COLLATE Chinese_PRC_CI_AS, [Price] Decimal(18,2))

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/548553.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

利用JQuery插件CleverTabs实现多页签打开效果

在VS中&#xff0c;我们能打开多页签&#xff0c;并在不同的页签之间进行浏览和操作&#xff0c;这一功能通过JQuery插件CleverTabs也能实现此效果。CleverTabs下载请点击这里&#xff1a;JQuery CleverTabs 本文采用ASP.NET MVC技术实现效果&#xff1a;要在布局页中点击不同的…

指针的一个简单应用

#include "stdafx.h" int main(int argc, char* argv[]){ //string s("hello world"); string s "hello world"; string *p &s; *p "goodbye";//此时字符串s的值也变化了 string *sp &s; sp p; *sp "new another w…

精通ASP.NET MVC ——路由

本文章将关注定义路由&#xff0c;并使用它们去处理URL&#xff0c;使用户能够到达控制器和动作。 文章非常长&#xff0c;可以对路由机制有较初步的了解。首先创建示例项目&#xff0c;项目名为UrlAndRoutes&#xff0c;如下图所示&#xff1a; 然后是创建示例控制器和示例视图…

建立丰富多彩的toast的简单实例

为toast中的view显示建立一个layout的xml文件&#xff0c;放到res的layout目录下 下面是对xml的调用 //先通过LayoutInflater来将xml文件中的 Layout变成一个view。这个类可以将XML实例化&#xff0c;形成一个View。以文本为例&#xff0c;要从一个XML文档生成一个可供使用的Vi…

ASP.NET Web API简单学习

Web API 简介 Web API可以返回 json、xml类型的数据&#xff0c;对于数据的增删改查&#xff0c;提供了对应的资源操作&#xff0c;按照要求的类型进行处理&#xff0c;主要包括&#xff1a;Get&#xff08;查&#xff09;&#xff0c;Post&#xff08;增&#xff09;&#xff…

我的家庭私有云计划-2

嗯&#xff0c;继续。 刚才调试了一个崩溃型bug&#xff0c;都不是大问题&#xff0c;但几个小问题加到一起&#xff0c;居然弄崩溃了。这种远因叠加的bug最难找&#xff0c;还好找到了。 拿到预算了&#xff0c;下面做什么&#xff1f; 我是商用程序员&#xff0c;习惯性要做需…

利用NCO 3.0 调用SAP中的函数

简介 .Net Connector 3.0&#xff0c;简称 Nco3.0。Nco3.0 是 SAP 针对 .net 平台提供的编程接口&#xff0c;由 Nco1.0/Nco2.0 演变而来。如果使用 .net 平台编程&#xff0c;推荐使用 NCo3.0。3.0 版与之前1.0/2.0 版本比较&#xff0c;不管是 API 还是架构&#xff0c;都重新…

char与varchar区别(MYISAM)

Char属于固定长度的字符类型&#xff0c;而varchar属于可变长的字符类型。 下表将各种字符串值保存到char(4)和varchar&#xff08;4&#xff09;列后的结果&#xff0c;说明了char和varchar之间的差别 值 Char(4) 存储需求 Varchar (4) 存储需求 ‘’ ‘ ’ 4字符节…

以团队之名

我们是一群来自草根的互联网团队&#xff0c;以团队之名~ 转载于:https://www.cnblogs.com/weblab/archive/2012/04/01/2429427.html

Win10系统局域网中的其他电脑能Ping通但是无法访问本地IIS发布的网站

局域网中的其他电脑无法访问本地IIS发布的网站&#xff0c;但是能ping通&#xff0c;基本是由于没开放端口的原因。 打开防火墙 —— 高级设置&#xff1a; 点击“入站规则”&#xff0c;然后是“新建规则”&#xff1a; 然后选择“端口” &#xff1a; 选择“TCP”&#xff0c…

Bash shell脚本练习(一)

一、此题来源51cto linux论坛版 用户输入A;B;C;D;E;F;G 输入A的话就查看/etc/passwd最后5个系统用户&#xff0c;只要显示用户名和UID就行了&#xff0c;其他不要 输入B的话就显示系统开机时间多久了 输入C的话就判断当前磁盘根目录使用情况是否超过50%&#xff0c;如果超过50%…

ASP.NET Web API 中的属性路由

为什么要有属性路由 基于约定路由的一个优点是模板在单个位置中定义&#xff0c;并且路由规则在所有控制器上一致的应用。但是基于约定的路由很难支持RESTFUl 中常见的某些URI模式。例如&#xff0c;资源通常包含子资源&#xff0c;客户有订单&#xff0c;电影有演员&#xff…

C#调试WebService

简单调试 1、首先&#xff0c;新建一个WebService项目用于测试&#xff0c;如下图所示&#xff1a; 2、项目会默认生成一个Hello方法&#xff0c;但是由于Hello方法太简单&#xff0c;添加一个Add方法用于计算两个整数之和&#xff0c;如下图所示&#xff1a; [WebMethod]publ…

ArchLinux学习之环境变量

2019独角兽企业重金招聘Python工程师标准>>> 使得刚修改的环境变量生效&#xff1a;source <带环境变量的文件> 查看环境变量&#xff1a; env 或 set 持久化的环境变量主要存在于这几个文件中&#xff1a; /etc/profile/etc/environment~/.bash_profile~/.b…

ASP.NET Web API中的返回值

本文将Web API中常用的返回值罗列了一下&#xff0c;如需要进一步详细了解&#xff0c;请点击这篇文章 返回值继承接口描述void无返回http状态码204&#xff0c;告诉客户端此请求没有返回值Json<T>(T content)IHttpActionResult返回某种类型的Json字符串OkIHttpActionRe…

精通ASP.NET MVC ——属性路由

在上一篇文章中&#xff0c;有约定路由的介绍。MVC 5中增加了对属性路由这一新技术的支持。在属性路由中&#xff0c;路由是由直接运用于控制器的C#属性定义的。 启动和运用属性路由 默认情况下属性路由是禁止的&#xff0c;通过MapMvcAttributeRoutes扩展方法可以启用它。该…

ntp的一个小错误

[rootlocalhost ~]# ntpdate 10.128.14.25 3 Apr 21:05:05 ntpdate[1506]: the NTP socket is in use, exiting 收到此错误消息的原因是由于 xntpd 已经绑定到了该 Socket。运行 ntpdate 时&#xff0c;它会首先进行广播&#xff0c;然后侦听端口 123。如果 xntpd 正在运行&am…

ASP.NET MVC 阻止通过URL访问服务器上的静态资源文件

背景 在默认情况下&#xff0c;MVC框架是支持对服务器静态资源的访问的&#xff0c;我们在项目根目录下新建一个Content文件夹&#xff0c;然后添加一个命名为“StaticContent.html”的html文件&#xff0c;如下图所示&#xff1a; StaticContent.html中的代码如下图所示&…

怀念一下过去的人和事

年轻的时候&#xff0c;有大把的时间可以胡折腾。现在这人已经成了过去了&#xff0c;只生存在另一个平行空间了&#xff0c;也许在另外的空间里&#xff0c;另一个我还每天弹着重金属&#xff0c;喝酒吃肉。昔人已抱吉他去&#xff0c;此地空余效果器。现在廉颇老矣&#xff0…

linux 调优 网络调优

1 UDP buffer size sysctl -a 接收 net.core.rmem_default (默认)net.core.rmem_max (最大)发送 net.core.wmem_default (默认)net.core.wmem_default &#xff08;最大&#xff09;2 TCPbuffer sizesysctl -a net.ipv4.tcp_mem 最小 合理 最大&…