首页 新闻 赞助 找找看

SqlBulkCopy效率低下的原因

0
[待解决问题]

看到标题 应该会奇怪 SqlBulkCopy 为什么会效率低下

场景:接手项目 数据库SQLSERVER2008R2, 目前有一张流水表单表数据超过4亿,表中建有索引,有其他模块对这个表进行查询操作,无其他写入操作,每天需要有将近100W的数据批量写入

目前 用SqlBulkCopy 进行批量插入,发现奇怪的现象, 每次批量插入1W条 耗时将近6~10分钟,之前有用过SqlBulkCopy批量插入47W也就6分钟左右

原因不明

 

现在排除分表等其他优化的可能 由于业务原因 目前无法进行读写分离操作

现在考虑为何SqlBulkCopy效率会这样慢

原因点:该表数据存量过大,已经超过亿万级,而且有几组索引,索引不能删除

通过配置了 SqlBulkCopy 的colummap 效率有所提升,但是不稳定 目前单次批量插入1W 依然超过了6分钟

 

不知道其他博友 有没有遇到过类似问题,欢迎提供解决思路

 

PS:什么读写分离 分表的建议就不要提出了哈,因为业务原因 目前现状不能做这个操作

夜猫范的主页 夜猫范 | 初学一级 | 园豆:102
提问于:2017-10-17 17:09
< >
分享
所有回答(1)
0

把你要导入的数据按照目标表聚集索引顺序排序下再导,同时加下Order的hint。当然最好能临时拿掉非聚集索引。

Daniel Cai | 园豆:10424 (专家六级) | 2017-10-17 19:20
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册