【发布时间】:2014-05-21 11:39:42
【问题描述】:
情况如下:我有一个大型数据集,其中包含从 Excel 文件填充的几千个条目。对于每个条目,我必须将其与数据库中某个表上的另一个字段匹配(该表仅包含几百个条目)。
最好的方法是什么?我可以对数据集中的每个条目进行查询,但这似乎相当浪费;另一方面,我可以从表中的所有条目中选择我需要的字段,将它们放在字典或其他一些数据结构上并在 IIS 上匹配它们,从而有效地只进行一个查询,但在网络服务器上进行所有处理.
数据集:~1000 到 ~3000 个条目
数据库中的表:~300 个条目
在 IIS 上使用 asp.net 但数据库是 MS 访问文件。
这两个更好吗?有没有我没想到的第三种更好的方法?
【问题讨论】:
-
在数据库中进行处理。您想要的操作是
join,并且数据库针对这种类型的数据处理进行了优化。 -
问题是我的数据集不在数据库中,我应该用它在数据库中创建一个临时表并从那里加入它们吗?
-
这在很大程度上取决于数据集的大小,正如 Gordon 所说,SQL 针对连接操作进行了优化,这将是最快的方式。但是,根据您建议的大小,如果您必须创建并填充一个临时表来进行连接,然后将记录返回到服务器,然后摆脱临时表,我原以为会是更快地填充和循环包含几千条记录的数据集,填充和查找包含几百条记录的小型字典。
-
如前所述,数据库会处理得更好,但是,我的猜测是,将数据导入数据库的过程会抵消大部分收益。请记住,一个数据集可以包含多个表,您可以在这些表之间创建关系。我在这方面做得不多,但我认为你可以以某种方式利用关系。底线,可能唯一确定的方法是尝试这两种方法。