繁体   English   中英

如何使用C#将4,500,000条记录快速插入sql server数据库

[英]how to fast Insert 4,500,000 record into sql server database with c#

我在c#中有一个程序,使用ExecuteNoneQuery将4,500,000条记录插入到sql中,并且插入时间太长,我需要一种快速的方法来插入,最多需要大约10分钟,但是当我通过Management Studio从另一个表向我的表插入4,500,000条记录时,它需要3分钟

SqlBulkCopy类设计用于快速插入大量数据。

但是,您需要了解,通过这种大小,磁盘访问速度和网络延迟/带宽/饱和度会发挥作用。

在同一台计算机上进行复制的情况下,从另一个表填充一个表的示例无效。

如Oded所述,此操作的起点是SqlBulkCopy。 但是,如果您可以控制数据库,则还应检查数据库上的恢复模型是否设置为“简单”或“批量记录”。 否则,SQL Server创建日记帐分录将遭受沉重打击。 您还需要确保已设置TableLock的SqlBulkCopyOptions。

这两个很简单。 使用SqlBulCopy BatchSize设置和事务模型(请参见UseInternalTransaction)也很值得,但是这些设置很难给出建议,因为针对不同的场景,最佳设置可能会大不相同。 如果执行TableLock并检查恢复模型并不能达到您想要的速度,则可以开始使用Batch Size,但是它更多地是灰色区域。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM