SSIS中增量负载的最佳方法是什么

时间:2018-06-20 06:19:04

标签: ssis increment

我正在尝试从Source表向mrr/src表创建增量加载,在Source表中,我有created日期和'modified'日期。

添加新记录:

有两种方法可以执行增量操作,我想知道哪种方法更好:

  1. 在Source表和mrr / src表之间合并联接任务(左联接),并获取mrr / src表中不存在的所有记录。

  2. 保存上一个上载日期并获取所有新记录,这些记录的“创建”日期都比上一个上载日期高。

我个人选择了第二个选项,但是从性能上来说,第一个选项是否更可取?

更新现有记录:

同样有两个选择:

  1. 使用条件拆分任务,并对源表和mrr / src表中的字段进行所有比较。

  2. 使用“源”表中的“修改日期”并将其与上次上传日期进行比较, 为了知道自上次检查Source表以来已更新了哪些记录。

是否有首选选项,我是否缺少选项?

1 个答案:

答案 0 :(得分:1)

添加新记录: 我更喜欢#2(假设创建的日期将始终高于上次插入的日期)。对于源表将大大增长的情况,选项#2也更好。 与选项#1相反,表的执行时间会比较快,表越大,比较所有数据所花费的时间就越多。

更新现有记录: 选项#2,但是再次假设,更改字段时,修改日期总是会更改。 加快更新性能的提示。而不是动态更新记录。只需将记录保存在临时物理表中,然后在SSIS包中执行下一步即可发出SQL脚本,以将该临时表用作更新主最终表的参考。这比在数据流上使用SQL Task更快。该任务将每行发布一条更新语句。