gpt4 book ai didi

c# - 如何通过 ADO.NET 加快向表中插入多行的速度?

转载 作者:行者123 更新时间:2023-11-30 20:12:26 25 4
gpt4 key购买 nike

我有一个包含 5 列的表:AcctId (int)、Address1 (varchar)、Address2 (varchar)、Person1 (varchar)、Person2 (varchar)。我正在生成随机数据以通过 C# 控制台应用程序插入到此表中。我试过通过 SQL-Server 进行这种随机数据插入,但认为这不是一个好的解决方案——SQL 不能很好地随机地逐行插入数据。生成随机数据——其中 975k 行——花费的时间最少。它在自定义对象列表中。

我需要获取这个随机数据并用新的随机数据更新数据库中的许多行。我尝试一次更新一行,由于在代码中重复搜索 List 对象,所以速度非常慢。所以我认为最好的方法是将所有随机数据放入数据库中的一个表中,然后更新所有使用该数据的其他表。 IE。 UPDATE t SET t.Address1=d.Address1 FROM Table1 t INNER JOIN RandomizedData d ON d.AcctId = t.Acct_ID。数据库非常不规范,因此 Acct 数据散布在各处。我无法控制标准化。

因此,在决定将所有随机数据插入到一个表中后,我着手创建插入脚本:

USE TheDatabase
Insert tmp_RandomizedData
SELECT 1,'4392 EIGHTH AVE','','JENNIFER CARTER','BARBARA CARTER' UNION ALL
SELECT 2,'2168 MAIN ST','HNGR F','DANIEL HERNANDEZ','SUSAN MARTIN'
// etc another 98 times...
// FYI, this is not real data!

我正在构建这个 INSERT 脚本,每批 100 个。运行每个插入平均需要 175 毫秒。这看起来是不是很久了?运行整个插件大约需要 35 分钟。

该表没有主键或任何索引。我计划在插入所有数据后添加这些数据(认为那样会更快)。

有更好的方法吗?

最佳答案

SQLBulkCopy .net 中的类可以很快地爆破记录。我用它非常快速地将数据从 i 系列数据库传输到 SQL 表。

关于c# - 如何通过 ADO.NET 加快向表中插入多行的速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2655205/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com