我们以BCP导出的CSV数据文件,分别使用Bulk insert与BCP导入数据库,对比两种方法执行效率

备注:导入目标表创建了分区聚集索引

1.BCP导出csv数据文件

数据量:15000000行,21.7G

导出作业形式:局域网服务器向客户端导出

执行导出:

bcp [spc].[dbo].[bcc] out "c:\data\bcc.csv" -c -t"," -r"\n" -S"43.xxx.xxx.xxx" -U"sa" -P"*******"

历时:16:10~18:26

2.BCP导入csv

数据量:15000000行,21.7G

导入作业形式:局域网客户端向服务器

执行导入:

bcp [spc].[dbo].[bcc2] in "c:\data\bcc.csv" -c -t"," -r"\n" -S"43.xxx.xxx.xxx" -U"sa" -P"*******"

历时:09:41~19:44,10个小时,未执行完成中止

3.Bulk Insert导入csv

数据量:15000000行,21.7G

导入作业形式:csv文件拷贝到服务器,直接在服务器端作业

执行导入

bulk insert bcc3
from 'd:\\db\bcc.csv'
with(
  fieldterminator=',',
  rowterminator='\n',

datafiletype='char'

)

历时:17:42~19:44,02:02:00(未执行完)

总结:

1. 由于本人最初计划在局域网下,采用同样客户端向服务器端导数据,以测试两种方法效率高下;

但使用bcp作业一半时,已经是4+个小时,太慢,所以中途决定将Bulk Insert直接在服务器上作业;

以上测试结果,若不考虑网络因素,Bulk Insert效率更高;

2.导入过程,索引必然是影响效率的重要原因 ;

后面有时间,再使用BCP直接在服务器上作业测试下实际效率,以及删除索引对比两种方式时间

Bulk Insert & BCP执行效率对比的更多相关文章

  1. Bulk Insert & BCP执行效率对比(续)

    上回由于磁盘空间(约70G)不足,导致Bulk Insert和BCP导入中途失败:今次统一一些操作,以得到Bulk insert与BCP分别执行效率: 1. 15435390笔数据,21.7G csv ...

  2. read()/fread()/mmap()执行效率对比

    一. read()/fread()/mmap()执行效率对比 系统调用read.c: #include <sys/types.h> #include <sys/stat.h> ...

  3. string中Insert与Format效率对比、String与List中Contains与IndexOf的效率对比

    关于string的效率,众所周知的恐怕是“+”和StringBuilder了,这些本文就不在赘述了.关于本文,请先回答以下问题(假设都是基于多次循环反复调用的情况下):1.使用Insert与Forma ...

  4. Snapman系统中TCC执行效率和C#执行效率对比

    Snapman集合了TCC编译器可以直接编译执行C语言脚本,其脚本执行效率和C#编译程序进行效率对比,包括下面4方面: 1.函数执行效率 2.数字转换成字符串 3.字符串的叠加 4.MD5算法 这是C ...

  5. Linq的执行效率及优化

    描述:项目中使用了linq,发现写的顺序不一样最后的结果也不一样,效率也不一样. Linq的执行效率对比 List<int> source = new List<int>(); ...

  6. OCIlib的几个函数的执行效率(附上pro*c的性能对比)

    ocilib提供了以下几个执行sql语句的函数 OCI_ExecuteStmt/OCI_ExecuteStmtFmt 使用没有绑定变量的语句 OCI_Execute 使用有绑定变量的语句 OCI_Im ...

  7. [转]UTF-8 encoding support for the BCP utility and BULK INSERT Transact-SQL command in SQL Server 2014 SP2

    本文转自:https://support.microsoft.com/en-us/help/3136780/utf-8-encoding-support-for-the-bcp-utility-and ...

  8. 列表推导式对比For循环执行效率

    我们在前面的学习中都知道,如果把1-10以内的元素追加到一个新的列表表中,如果使用for循环我们可以这么做: a = [] for i in range(1,11): a.append(i) prin ...

  9. 笔记整理之 Bulk Insert

    之前2篇日志整理了BCP大致的用法,这次整理一下它的兄弟 Bulk Insert 的写法以及和bcp那边的结合的用法. 首先,Bulk Insert 语句要在连接了Sql Server 服务器之后才执 ...

随机推荐

  1. oracle处理考勤时间,拆分考勤时间段的sql语句

    最近一直在用mysql数据库做云项目,有段时间没有接触oracle了,昨天有朋友叫我帮忙用oracle处理一个考勤记录的需求,我在考虑如何尽量精简实现上面花了一些时间.于是把这个实现做个总结. 需求如 ...

  2. TODO:Half Half的设计

    IMessageHandler :消息同步处理接口 AbsQueue:消息队列处理层,可以使用Template Method进行设计 INetWorkLayer:专门处理网络IO的,并附带多线程与异步 ...

  3. POJ3659 Cell Phone Network(树上最小支配集:树型DP)

    题目求一棵树的最小支配数. 支配集,即把图的点分成两个集合,所有非支配集内的点都和支配集内的某一点相邻. 听说即使是二分图,最小支配集的求解也是还没多项式算法的.而树上求最小支配集树型DP就OK了. ...

  4. (转)Linq学习笔记

    写在前面 最近在看Linq,在博客园看到这篇文章,写的通俗易懂,转来和大家一起做个分享.原文地址http://www.cnblogs.com/goscan/archive/2011/05/05/Lin ...

  5. 配置当前用户使用豆瓣pip源

    配置当前用户使用豆瓣pip源   mkdir ~/.pip/ cat ~/.pip/pip.conf [global] index-url = http://pypi.douban.com/simpl ...

  6. 发布android app到android market的方法

      转载自: http://www.stwind.org/android-market 给你的程序签名注意事项:所有提交到Market的程序必须经过签名.未经签名的程序不能安装.你可以使用个人证书去签 ...

  7. cmd下常用的一些命令

    1.calc计算器 2.Mspaint画图 3.Netstat -anb查看端口 输入netstat -anb时可能会遇到下面问题 只要到搜索框输入cmd,然后到其快捷方式上右击以管理员身份运行即可 ...

  8. php文件以二进制形式上传并放入到数据库中

    conn.php: <?php $id=mysql_connect('localhost','root','root'); mysql_select_db("db_database12 ...

  9. 使用LTT升级HP磁带机的固件程序

    下载后将软件包解压 解压后,进入该文件夹可以看到固件程序     将所有固件程序拷贝至LTT软件安装目录下的firmware文件夹中 C:\Program Files\HP StorageWorks ...

  10. cordova -v 报错,必须用sodu cordova -v

    问题来源:MAC Caption EI 安装nodejs 4.5.0 之后,用命令:sudo npm install -g cordova ionic 安装cordova 和 ionic 然后用命令: ...