Sql server 将旧版FlashFiler2数据库镜像到SQL Server

Sql server 将旧版FlashFiler2数据库镜像到SQL Server,sql-server,ado.net,Sql Server,Ado.net,我维护一个非常旧的数据采集系统,它使用一个遗留的FlashFiler2数据库。我的一位客户希望将数据库表镜像到SQL Server数据库中,以便于后期处理 有两种类型的表: 测量值:这些表每天都会得到新的时间戳数据,我的策略是记录我已经为每个测量点镜像的最后一条数据记录的时间戳,并且只将新记录添加到目标数据库中 大多数是静态表:这些表很少更改,记录没有时间戳。也许可以考虑一个customers表,它很少获得新条目,并且现有记录很少更改 要通过暴力处理案例2,我必须清除目标表并每天重新创建它,或者

我维护一个非常旧的数据采集系统,它使用一个遗留的FlashFiler2数据库。我的一位客户希望将数据库表镜像到SQL Server数据库中,以便于后期处理

有两种类型的表:

  • 测量值:这些表每天都会得到新的时间戳数据,我的策略是记录我已经为每个测量点镜像的最后一条数据记录的时间戳,并且只将新记录添加到目标数据库中

  • 大多数是静态表:这些表很少更改,记录没有时间戳。也许可以考虑一个customers表,它很少获得新条目,并且现有记录很少更改

  • 要通过暴力处理案例2,我必须清除目标表并每天重新创建它,或者比较每个记录的更改,检测已删除的记录并添加新记录

    完成这项任务的有效方法是什么

    在一篇相关的文章中,我发现了创建目标记录的MD5哈希的想法。然后可以使用散列来比较记录的更改。当然,我仍然需要检查添加和删除的记录。这值得付出努力吗?还是我应该采用暴力手段


    我的工具是:Visual Studio 2017,C#与SQL Server和FlashFiler2 Delphi组件的ADO.NET提供程序。

    我最终得到了以下结果:

    1) 对于所有包含很少更改数据的表,我选择完全重新创建它们。演出确实比我想象的要好

    2) 对于测量值表,我选择了一个可配置的回溯,从中按时间顺序将数据复制到目标数据库。这主要是多余的,因为意图回溯应该包括已经传输的数据。但是,这是必要的,因为有时可能需要更正源中已传输的某些数据。就我而言,这些修正通常在一两个月内发生。因此,3个月的回顾通常就足够了


    现在主要的性能瓶颈似乎是逐个记录地插入目标数据库。我想这是有批处理例程的,但这将是另一篇文章的主题。

    截断和加载是一种很好的模式,可能比您预期的要快。