我有一个如下所示的对象,但数据量很大,我们观察到插入到我们的 SQL 数据库中需要很长时间,因为我们使用普通的foreach
,主要思想是插入每个部门并获取生成的身份号码,然后插入分配有该部门 ID 的嵌套员工。
<Sample>
<Departments>
<Department>
<Name>HR</Name>
<Employees>
<Employee>
<Name>Marco</Name>
</Employee>
<Employee>
<Name>John</Name>
</Employee>
<Employee>
<Name>Sarah</Name>
</Employee>
</Employees>
</Department>
<Department>
<Name>IT</Name>
<Employees>
<Employee>
<Name>Ali</Name>
</Employee>
<Employee>
<Name>Roberto</Name>
</Employee>
<Employee>
<Name>Franco</Name>
</Employee>
</Employees>
</Department>
</Departments>
</Sample>
我们尝试使用Parallel.ForEach
提高性能,确实如此,但我们遇到了另一个问题@@IDENTITY
因为 Parallel.ForEach 中正在运行的任务之间存在重叠,因为我们发现一名员工被分配到另一个部门。
The need...我需要加快该过程,或者使用Parallel.ForEach
or foreach
... 有任何想法吗?
顺便说一句......我们正在调用一个存储过程,其中包含正常的INSERT INTO
使用分类的命令ADO.NET
您可以使用 guid 作为表的主键。它将帮助您避免 @@IDENTITY 的问题。
首先,您应该生成新的 guid-identity,感谢将生成的值插入到一行中
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)