【发布时间】:2018-02-09 18:13:28
【问题描述】:
所以我目前有一个包含大约 70,000 个名称的数据库表。我想要做的是从该数据库中获取 3000 条随机记录并将它们插入到另一个表中,其中每个名称都有一行用于所有其他名称。换句话说,新表应该是这样的:
John, jerry
john, alex
john, sam
jerry, alex
jerry, sam
alex, sam
这意味着我应该在表格中添加 n 行的总和。我目前的策略是使用两个嵌套的 for 循环一次添加这些行,然后从要添加的名称列表中删除第一个名称,以确保我没有具有不同顺序的重复记录。
我的问题是:有没有更快的方法来做到这一点,也许是通过并行 for 循环或 PLINQ 或我没有提到的其他选项?
【问题讨论】:
-
你的数据库是关系型设计吗?
-
你听说过SqlBulkCopy操作吗?
-
交叉连接。不要使用循环。
-
那不是! 3000!相当大m.wolframalpha.com/input/?i=3000%21
-
很好地抓住了阶乘,我的坏@MartinSmith
标签: c# sql sql-server parallel.foreach