Bulk Insert & BCP执行效率对比

我们以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直接在服务器上作业测试下实际效率,以及删除索引对比两种方式时间

上一篇:雷林鹏分享:jQuery EasyUI 数据网格 - 添加分页组件


下一篇:matlab实现协同过滤之pdist、squareform