0

我有一个大约 100 列和大约 10000 行的表。我会定期收到包含类似数据的 Excel,我现在需要更新表格。如果 Excel 中存在新行,我必须将它们添加到数据库中。如果旧行已更新,我需要更新数据库中的行。如果某些行已被删除,我需要从主表中删除该行并添加到另一个表中。

我考虑过如下进行:

将 db 中的所有行提取到 DataSet 中。将 Excel 中的所有行导入数据集。现在使用连接比较这 2 个数据集并执行所需的操作。

我从来没有处理过这么大的数据,我很担心性能。让我知道实现这一要求的理想方法。

提前致谢。:)

4

2 回答 2

3

不用担心 10k 记录的性能,您不会注意到它...

也许更好的方法是在临时表中导入 excel 文件并使用几个简单的 sql 查询进行处理......您将节省开发时间并且它可能会表现得更好......

于 2012-11-09T20:36:52.117 回答
2

正如我的经验所说,如果您选择在 t-sql 中执行以下操作,那就太简单了:

  1. 您可以在 SQL Server 中使用"OPENROWSET"、、"OPENQUERY"链接服务器、DTS 和许多其他东西将 excel 文件导入临时表。
  2. 您可以编写一些简单的查询来做到这一点。如果您使用的是 SQL 2008,"MERGE"则正好为您提出问题。

另一件事是性能与 C# 相差甚远。您可以使用"TOP"子句对比较进行分块并执行许多其他操作。

希望能帮助到你。干杯

于 2012-11-09T20:38:33.583 回答