[英]How to check if a record exists in the SQL Server database C# winform?
[英]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.