gpt4 book ai didi

c# - 将关系(规范化)数据表快速插入 SQL Server 2008 数据库

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

我正在尝试找到一种比我现在使用的 Linq 更好更快的方法来插入大量数据(~50K 行)。我试图写入本地数据库的数据位于从 WCF 序列化和接收的 ORM 映射数据列表中。我热衷于使用 SqlBulkCopy,但问题是这些表是规范化的,实际上是一个序列或具有一对多关系的互连表。

这里有一些代码可以说明我的观点:

foreach (var meeting in meetingsList)
{
int meetingId = dbAccess.InsertM(value1, value2...);
foreach (var competition in meeting.COMPETITIONs)
{
int competitionId = dbAccess.InsertC(meetingid, value1, value2...);
foreach(var competitor in competition.COMPETITORs)
{
int competitorId = dbAccess.InsertCO(comeetitionId, value1,....)
// and so on
}
}
}

dbAccess.InsertMeeting 看起来像这样:

// check if meeting exists
int meetingId = GetMeeting(meeting, date);

if (meetingId == 0)
{
// if meeting doesn't exist insert new
var m = new MEETING
{
NAME = name,
DATE = date
}
_db.InsertOnSubmit(m);
_db.SubmitChanges();
}

提前感谢您的任何回答。博扬

最佳答案

我仍然会使用 SqlBulkCopy 将您的数据从外部文件快速复制到一个与文件具有相同(平面)结构的临时表(您将需要提前创建该表)

加载后,您可以使用例如将数据拆分到多个表中存储过程或其他东西 - 应该非常快,因为一切都已经在服务器上了。

关于c# - 将关系(规范化)数据表快速插入 SQL Server 2008 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3006472/

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