【问题标题】:Differentiating update of entries (business logic objects)区分条目更新(业务逻辑对象)
【发布时间】:2010-09-01 14:42:56
【问题描述】:

我面临的情况如下:

C# 应用程序从大量“平面”文件中提取数据以创建条目,然后将这些条目写入数据库(MS SQL 服务器)。该数据库的完整版本包含 220 GB 的约 9700 万个条目。

任务是通过解析新的完整版本并找出哪些现有条目已更新,从而创建数据库中数据的差异更新。如果条目的任何属性已更改,则该条目被视为已更新。
[更新] 每个条目都有一个唯一的 ID。

问题在于数据提供者不提供任何条目修改指示(版本号或最后修改日期) - 仅提供完整版本。

到目前为止,我提出的解决方案是为每个条目生成一个哈希和,然后将新条目与旧条目进行比较。
使散列和不受欢迎的问题的另一个方面是数据大小和条目数之间的组合 - 这简直是惊人的。

那么,还有比这更好的解决方案吗?

任何有关此案的帮助将不胜感激!

一切顺利, 鲍里斯拉夫

【问题讨论】:

    标签: c# .net comparison differentiation


    【解决方案1】:

    是否有可用于唯一标识记录的密钥?

    如果没有,您只能找到相同的。然后,您需要删除新版本中不匹配的所有现有记录,并添加该版本中与现有版本中的记录不匹配的所有记录。

    不过,拥有一把钥匙会让事情变得更容易。

    【讨论】:

    • 是的,每个条目都有一个唯一的 ID - 我已经更新了问题。纯粹因为它存在而删除一个条目在性能方面是好的,但需要找到更新的条目并将其标记为 - 这就是让我感到困惑的地方。
    猜你喜欢
    • 1970-01-01
    • 2012-05-27
    • 2011-03-17
    • 2011-08-01
    • 2020-09-07
    • 2016-12-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多