在某些场景下,可能需要在短时间内向数据库中插入大量数据,数据来源可能是性能非常高的实时数据库或者文件,然后转换为关系数据库中的内容,这就要求关系数据库具有非常高的写入性能。
解决办法
解决办法1:在默认情况下,Sql Server把每一次写入当做一个事物处理,在大数据量写入的情况下,每一次写入的事物处理需要耗费非常多的性能和时间,如果插入10w条记录,使用10w次insert语句,在普通pc上30秒钟都无法完成,如果仅启用一次事物,然后做10W次insert操作,仅需要短短的1秒钟就可以完成。
解决办法2:使用SqlBulkCopy,使用SqlBulkCopy可以在大数据量转移时在很大程度上提高性能,使用该类的ColumnMappings属性可以建立源表和目标表的映射关系,实例代码如下:http://www.cnblogs.com/horsonjin/archive/2011/09/08/2171708.html |