所以我正在玩BULK INSERT
声明并开始喜欢它。使用SQL Server Import/Export Wizard
,BULK INSERT
7小时的谈话只需要1-3个小时。但是,我观察到的是完成时间在很大程度上取决于BATCHSIZE
规范。
以下是我观察到包含5000万条记录的5.7 GB文件的时间:
BATCHSIZE = 50000, Time Taken: 17.30 mins
BATCHSIZE = 10000, Time Taken: 14:00 mins
BATCHSIZE = 5000 , Time Taken: 15:00 mins
这只会让我感到好奇:是否有可能为BATCHSIZE
确定一个好的数字,如果是这样,它依赖于什么因素,并且可以近似而无需运行相同的查询数十次?
我的下一次运行将是一个包含7.8亿条记录的70 GB文件。任何建议,将不胜感激?我完成后会报告结果。
答案 0 :(得分:1)
有一些信息here,看起来批量大小应该尽可能大;文档通常表示批量大小越大,性能越好,但您根本没有遇到过这种情况。似乎10k是一个很好的批量大小,但我会考虑从其他角度优化批量插入,例如将数据库置于简单模式或在导入竞赛期间指定tablock提示。