≡
  • 网络编程
  • 数据库
  • CMS技巧
  • 软件编程
  • PHP笔记
  • JavaScript
  • MySQL
位置:首页 > 数据库 > SQL Server

asp.net 使用SqlBulkCopy极速插入数据到 SQL Server

人气:628 时间:2019-05-20

这篇文章主要为大家详细介绍了asp.net 使用SqlBulkCopy极速插入数据到 SQL Server,具有一定的参考价值,可以用来参考一下。

感兴趣的小伙伴,下面一起跟随四海网的小编两巴掌来看看吧!

按这个来算,我们那个发水票的时间就会由 10分钟-->20秒,这可太神奇了。
于是乎,下demo,测试,改成自己一般使用的方法测试,NND,还真可以说是极速。
在此贴上我的Demo:SqlBulkCopy.rar

代码如下:

 
using System; 
using System.Diagnostics; 
using System.Data; 
using System.Data.SqlClient; 
using Microsoft.ApplicationBlocks.Data; 
namespace ConsoleAppInsertTest 
{ 
class Program 
{ 
static int count = 1000000; //插入的条数 
static void Main(string[] args) 
{ 
long sqlBulkCopyInsertRunTime = SqlBulkCopyInsert(); 
Console.WriteLine(string.Format("使用SqlBulkCopy插入{1}条数据所用的时间是{0}毫秒", sqlBulkCopyInsertRunTime, count)); 
long commonInsertRunTime = CommonInsert(); 
Console.WriteLine(string.Format("普通方式插入{1}条数据所用的时间是{0}毫秒", commonInsertRunTime, count)); 
Console.ReadKey(); 
} 
/// <summary> 
/// 使用普通插入数据 
/// </summary> 
/// <returns></returns> 
private static long CommonInsert() 
{ 
Stopwatch stopwatch = new Stopwatch(); 
stopwatch.Start(); 
for (int i = 0; i < count; i++) 
{ 
SqlHelper.ExecuteNonQuery(SqlHelper.SqlConnection, CommandType.Text, "insert into passport(PassportKey) values('" + Guid.NewGuid() + "')"); 
} 
stopwatch.Stop(); 
return stopwatch.ElapsedMilliseconds; 
} 
/// <summary> 
/// 使用SqlBulkCopy方式插入数据 
/// </summary> 
/// <returns></returns> 
private static long SqlBulkCopyInsert() 
{ 
Stopwatch stopwatch = new Stopwatch(); 
stopwatch.Start(); 
DataTable dataTable = GetTableSchema(); 
for (int i = 0; i < count; i++) 
{ 
DataRow dataRow = dataTable.NewRow(); 
dataRow[2] = Guid.NewGuid(); 
dataTable.Rows.Add(dataRow); 
} 
//Console.WriteLine(stopwatch.ElapsedMilliseconds);//初始化数据时间 
SqlBulkCopy sqlBulkCopy = new SqlBulkCopy(SqlHelper.SqlConnection); 
sqlBulkCopy.DestinationTableName = "Passport"; 
if (dataTable != null && dataTable.Rows.Count != 0) 
{ 
sqlBulkCopy.WriteToServer(dataTable); 
} 
sqlBulkCopy.Close(); 
stopwatch.Stop(); 
return stopwatch.ElapsedMilliseconds; 
} 
private static DataTable GetTableSchema() 
{ 
return SqlHelper.ExecuteDataset(SqlHelper.SqlConnection, CommandType.Text, "select * from Passport where 1=2").Tables[0]; 
} 
} 
} 

转自cnblogs的文章 SQL批量插入数据几种方案的性能详细对比

本文来自:http://www.q1010.com/179/7474-0.html

注:关于asp.net 使用SqlBulkCopy极速插入数据到 SQL Server的内容就先介绍到这里,更多相关文章的可以留意四海网的其他信息。

关键词:SQL SERVER

您可能感兴趣的文章

  • win2003 安装 sqlserver 2005的方法
  • SQL Server当恢复sqlserver bak文件时,原始的用户无法删除的解决方法
  • SQL Server分页存储过程(三)在sqlserver中打造更加准确的分页结果
  • 分页存储过程(二)在sqlserver中返回更加准确的分页结果
  • SQLServer上查看SQL语句的执行时间的方法
  • SQL Server 2000数据库同步 同步两个SQLServer数据库的内容
  • SQLServer触发器创建、删除、修改、查看示例代码
  • MMC提示不能打开文件SQLServerEnterpriseManager.MSC的解决方法
  • Sqlserver 存储过程中结合事务的代码
  • SQL SERVER 错误22022 SQLServerAgent当前未运行的解决方法
上一篇:SQL Server 行列互转实现小结
下一篇:SQL Server 数据结构简明备忘录 线性表
热门文章
  • SQL Server SQL获取第一条记录的方法
  • SQL Server出现System.OutOfMemoryException异常的解决方法
  • SQL Server的 update from 语句的简单示例
  • SQL Server 数据库备份方法菜鸟教程
  • SQL Server 多表关联时在where语句中慎用trim()方法
  • SQL Server数据类型及长度限制详细说明
  • mybaits非配置原因,导致SqlSession was not registered for synchronization异常解析
  • SQL Server 收缩后对数据库的使用有影响吗?
  • SQL Server 格式导致的Excel导入sql出现异常的解决方法
  • SQL Server 连接服务器出现错误 7391的解决方法
  • 最新文章
    • SQL Server存储过程基本语法的简单示例
    • sql查询时增加自动编号和分页的简单示例
    • sql轻松应付百万数据的高效数据分页存储过程的简单示例
    • sql获取一条数据中所有字段的名称和值的实现方法
    • sql分割函数的简单示例
    • SQL Server异常捕获的简单示例
    • SQL SERVER回滚恢复误操作数据的实现方法
    • SQL Server函数或存储过程中抛出异常的实现方法
    • SQL Server创建数据库的完整代码
    • SQL Server创建数据库的命令用法示例

四海网收集整理一些常用的php代码,JS代码,数据库mysql等技术文章。