我有一个包含大约100列和大约10000行的表。 我会定期收到一个包含类似数据的Excel,现在我需要更新表格。 如果Excel中存在新行,则必须将它们添加到数据库中。 如果旧行已更新,我需要更新db中的行。 如果删除了某些行,我需要从主表中删除该行并添加到另一个表中。
我考虑过按以下步骤进行:
将db中的所有行提取到DataSet中。 将Excel中的所有行导入DataSet。 现在使用连接比较这两个DataSet并执行所需的操作。
我从未使用过如此规模的数据,并且担心性能问题。让我知道实现这一要求的理想方式。
提前致谢。 :)
答案 0 :(得分:3)
不要担心10k记录的性能,你不会注意到它......
或许更好的方法是在临时表中导入excel文件并使用几个简单的SQL查询进行处理...你将节省开发时间,它可能会表现得更好... < / p>
答案 1 :(得分:2)
正如我的经验所说,如果您选择在t-sql中执行以下操作,那么它就如此简单:
"OPENROWSET"
,"OPENQUERY"
,链接服务器,DTS和许多其他内容将excel文件导入临时表。"MERGE"
已经为您提出了问题。另一件事是性能与C#有很大不同。您可以使用"TOP"
子句来比较比较并执行许多其他操作。
希望它有所帮助。 干杯