读书人

求解Bulk Insert速度有关问题

发布时间: 2012-08-28 12:37:01 作者: rapoo

求解Bulk Insert速度问题
我发现Bulk Insert速度并不快,150万的数据居然要花1分多钟才能导入,目标表是空表,只有一个非聚集索引,我估计可能是非聚集索引的关系,所以我去掉了BatchSize,采用全部数据一次导入,避免非空表的索引开销,但发现效果不明显,请问大家有什么好办法?
注意,我不能显示地禁用和启用这个索引,因为表是动态的(很多表需要同一个程序用bulk insert去导入数据),相应的表中的索引名也是动态的,除非能够动态禁用和启用索引,请问是否可以做到?

[解决办法]
bulk insert 的时候把恢复模式改成 大容量日志模式 试下
完毕之后再切换到之前的模式
[解决办法]

ALTER DATABASE demo SET RECOVERY BULK_LOGGED --只记录大容量头尾
BULK INSERT
ALTER DATABASE demo SET RECOVERY FULL --完整记录


[解决办法]
如果楼主已经是简单模式,不用改了,
数据量大的时候,影响速度的因素很多,
楼主可以考虑SSIS,分成多个任务同时导入,
这样的话更多的利用CPU负载,但是解决不了CPU、硬盘和网速的性能瓶颈

读书人网 >SQL Server

热点推荐