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

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

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

原因不明

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

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

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

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

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

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

05-02 16:13