说来惭愧,关于批量导入数据,一直采用的是最原始的方式,一条一条插入,或者100条一块批量插入,这种方式,五十步笑百步,并没有明显的性能提升,

昨天在从别的库查询数据到DataTable内存中,然后插入另外一个库的时候,时间慢的要死,区区10W条数据,竟然要执行三分半。。。

声明一下,目标库是SQL Server。

百度了一下,SQLBulk闯入了我的视野,其实以前也了解过这个家伙,不过一直没有应用,

直接上代码。。。

 public int SqlBulkInsertForSQLServer(DataTable dt, string destionTable){int ires = 0;string costtime = "";SqlBulkCopy bulkCopy = new SqlBulkCopy(ConnectionString);bulkCopy.DestinationTableName = destionTable;bulkCopy.BatchSize = dt.Rows.Count;var watch = CommonHelper.TimerStart();if (dt != null && dt.Rows.Count != 0){bulkCopy.WriteToServer(dt);}bulkCopy.Close();ires = dt.Rows.Count;return ires;}

  1.这个地方需要注意的是DataTable列的顺序,要跟目标库的列顺序一直,包括数据库字段类型。。。

2.有的时候报类型不一致,排查的时候发现类型一致,这个时候要去确认一下是不是少加列了,导致跟目标表的字段不一致。

SQL Server库,如果目标表有一个自增列的话,会出现问题,这种情况下建议先建个临时表,将数据导入后 ,再操作临时表插入目标表。

转载于:https://www.cnblogs.com/niuge/p/9321952.html

c# SQLServer导入大批量数据相关推荐

  1. MySQL load data 快速导入大批量数据

    load data 简介 MySQL load data 语句能快速将一个文本文件的内容导入到对应的数据库表中(一般文本的一行对应表的一条记录). 数据库应用程序开发中,涉及大批量数据需要插入时,使用 ...

  2. 以文件形式导入大批量数据

    对于InnoDB类型的表 按主键顺序插入 因为InnoDB类型的表是安装主键顺序保存的,所以将导入的数据按照主键的顺序排列,可以有效的提高导入效率,如果InnoDB类型的表没有主键,那么系统会自动默认 ...

  3. sqlserver 导入导出数据向导

    准备数据 比如两张格式相同的表,table1和table2,数据格式如图: 注意主键id是自增的. 需求 现在把table1的指定数据导入到table2中,由于两张表都是主键自增,table2中可能存 ...

  4. Oracle一次性导入大批量数据

    一.如果你想导入数据库的数据存放于一个txt文件中,并且这些数据之间是有分隔符做了分割的,那么就可以使用sqlldr来将数据导入到数据库中. 我只是简单的举个栗子,方便演示.假设数据之间靠'|'来进行 ...

  5. php读取文件使用redis的pipeline导入大批量数据

    第一次写博客,哈哈,纯属用来记录一下自己工作中遇到的问题及解决办法. 昨天因为工作的需求,需要做一个后台上传TXT文件,读取其中的内容,然后导入redis库中.要求速度快,并且支持至少10W以上的数据 ...

  6. sqlserver导入execl数据ACE.OLEDB.12.0错误

    公司这几天又现需求,需要在sqlserver2008导入execl文件 但是97-2003的格式就可以就是(*.xls) 但是2007的(*.xlsx)就报以下的错误 经过测试,解决的办法是安装Acc ...

  7. 【操作经验】Mysql如何加载导入大批量数据,解决报错ERROR 3948 (42000)

    前言:新装mysql,遇到ERROR 3948 (42000):Loading local data is disabled; this must be enabled on both the cli ...

  8. 线程导入大数据入库_多线程批量插入数据小结

    在测试的过程中,无法避免的需要做一些性能压测,造数据的时长在此时就会备受关注.比如,造数据的时候用多线程还是多进程,用直接插入DB方式还是用先写文件后导入mysql的方式,写文件是写批量sql后面so ...

  9. 大数据批量导入,解决办法,实践从定时从 sqlserver 批量同步数据到 mySql

    c#代码,批量导入数据代码 public class MySql_Target : ZFCommon.DataAccesser.Base.DABase{public MySql_Target(){th ...

最新文章

  1. 数据库权限的分配与回收
  2. MPLS 的组成:路由器和交换机的作用——Vecloud
  3. P3 Simulink仿真-《Matlab/Simulink与控制系统仿真》程序指令总结
  4. GDCM:gdcm::CompositeNetworkFunctions的测试程序
  5. 记一次synchronized锁字符串引发的坑兼再谈Java字符串
  6. 简述JQuery,Extjs,YUI,Prototype,Dojo等JS框架的区别和应用场景
  7. 无法初始化java类_myeclip运行java程序不能初始化类 NoClassDefFoundError
  8. 10种顶级javascript框架比较-The Top 10 Javascript MVC Frameworks
  9. html5三角函数怎么用,HTML5(五)html5<canvas路径和三角函数的故事>(下)
  10. 基于 vue + zhengAdmin 的一套后台模板
  11. iOS 应用沙盒以及应用数据的存储方式
  12. Java学习day11--IO流总结
  13. 生理卫生课的经典对白
  14. 995.K连续位的最小翻转次数(唯唯诺诺)
  15. extjs中dateField日期精确到时分秒的扩展控件
  16. 9月17-18日黑客马拉松挑战赛-北京站
  17. SQL server 2008 定义数据类型
  18. linux网口初始化_深入理解Linux网络技术内幕——网络设备初始化
  19. meego linux 双系统,安装MeeGo和Windows 7双系统的方法
  20. H5/前端接入百度统计(企业级方案入门)——事件统计

热门文章

  1. Php 删除数组后几个元素
  2. CSS 会被继承的属性
  3. 新装iis 页面503错误 DefaultAppPool停止解决方案
  4. 面临找工作,要记住给自己的这些话。
  5. 编译原理练习题(第三章)
  6. python像素大于_用python处理图片实现图像中的像素访问
  7. 单片机中存储器扩展位地址线怎么算_关于单片机外扩存储器的编址方法
  8. 防爆计算机最新报价,防爆计算机 工厂直销 价格优惠升级方便外形轻巧KJD127防爆计算机...
  9. jmeter constant timer 如何添加_基于jmeter+perfmon的稳定性测试记录
  10. C++对象模型2——编译器生成构造函数的几种情况