首页 > 解决方案 > SSIS中增量负载的最佳方法是什么

问题描述

我正在尝试从源表创建增量加载到mrr/src表中,并且在我的源表中我有created日期和' modified'日期。

添加新记录:

有两种方法可以做增量,我想知道哪种方法更好:

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

  2. 保存上次上传日期并获取所有“创建”日期高于上次上传日期的新记录。

我个人选择第二个选项,但第一个选项在性能方面更可取吗?

更新现有记录:

同样有两种选择:

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

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

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

标签: ssisincrement

解决方案


添加新记录:我更喜欢#2(假设创建日期总是高于最后插入日期)。对于源表将大幅增长的情况,选项#2 也更好。与选项#1相反,它将执行快速的显式时间,即表越大,比较所有数据所需的时间就越多。

更新现有记录:选项 #2,但这又是假设修改日期总是在字段更改时更改。更快更新性能的提示。而不是即时更新记录。只需将记录保存在临时物理表中,然后在 SSIS 包中的另一个步骤中发出 SQL 脚本以使用该临时表作为更新主最终表的参考。这比在数据流上使用 SQL 任务要快得多。此任务将针对每一行发出一条更新语句。


推荐阅读