用bcp导入大量数据(代替INSERT)

   写代码的时候, 经常需要大量的SQL数据来测试代码性能,如果用INSERT方式, 一行一行的插入到测试表,效率非常低下, 开多线程最多也就每秒几千行记录的速度。

  之前用BCP批量导出导入数据的时候, 就想到自己构造bcp的数据,然后批量导入, 速度非常快, 每秒至少几万行~几十万行的数据。

 

  构造bcp数据的过程很简单, 写段C#代码, 产生一个txt文件,不过需要注意一下几点注意事项

  1. 参考《bcp导入导出数据发生异常解决方案
  2. 若字段是NULL值,需要转换成\0
  3. 建议不要使用默认的\t作为Field的分隔符,因为不方便人工查看C#生成的数据文件, 是否少了什么字段, 或者多了什么关键字
  4. bcp命令有-w 和-c模式, 要与生成的txt文件格式匹配, -w 对应txt文件为Unicode, -c 对应txt文件为ANSI

 

  然后用bcp in导入,一般来说, 总会遇到些错误, 稍微修正一下数据格式, 就能正确导入了(bcp导入2进制数据还没研究过,只能针对都是string和int类型的字段)

转载于:https://www.cnblogs.com/yushiro/archive/2010/08/13/1799095.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值