在 SSIS 中增量加载的最佳方式是什么
What is the best way for Incremental Load in SSIS
我正在尝试创建从源 table 到 mrr/src
table 的增量加载,并且在我的源 table 中我有 created
日期和“modified
”日期。
添加新记录:
有两种增量方法,我想知道哪种方法更好:
合并源 table 和 mrr/src table 之间的连接任务(左连接)并获取 mrr/src 中不存在的所有记录 table.
保存上次上传日期并获取所有新记录,这些记录的 'created' 日期早于上次上传日期。
我个人选择第二个选项,但就性能而言,第一个选项是否更可取?
更新现有记录:
同样有两个选项:
使用条件拆分任务并在源 Table 和 mrr/src 中的字段之间进行所有比较 table。
使用源 table 中的 'Modified' 日期并将其与上次上传日期进行比较,
为了知道自从我上次检查源 table.
以来更新了哪些记录
是否有首选选项,我是否缺少选项?
添加新记录:
我更喜欢#2(假设创建日期总是早于最后插入日期)。对于源 table 将大大增长的情况,选项 #2 也更好。
与选项 #1 相反,它将执行快速的显性时间,即 table 越大,比较所有数据所需的时间就越多。
更新现有记录:
选项 #2 但这再次假设当字段更改时修改日期将始终更改。
更快更新性能的提示。而不是即时更新记录。只需将记录保存在临时物理 table 中,然后在 SSIS 包中执行另一个步骤 SQL 脚本以使用该临时 table 作为参考来更新主要最终 table.这比在数据流上使用 SQL 任务要快得多。此任务将为每一行发出一个更新语句。
我正在尝试创建从源 table 到 mrr/src
table 的增量加载,并且在我的源 table 中我有 created
日期和“modified
”日期。
添加新记录:
有两种增量方法,我想知道哪种方法更好:
合并源 table 和 mrr/src table 之间的连接任务(左连接)并获取 mrr/src 中不存在的所有记录 table.
保存上次上传日期并获取所有新记录,这些记录的 'created' 日期早于上次上传日期。
我个人选择第二个选项,但就性能而言,第一个选项是否更可取?
更新现有记录:
同样有两个选项:
使用条件拆分任务并在源 Table 和 mrr/src 中的字段之间进行所有比较 table。
使用源 table 中的 'Modified' 日期并将其与上次上传日期进行比较, 为了知道自从我上次检查源 table.
以来更新了哪些记录
是否有首选选项,我是否缺少选项?
添加新记录: 我更喜欢#2(假设创建日期总是早于最后插入日期)。对于源 table 将大大增长的情况,选项 #2 也更好。 与选项 #1 相反,它将执行快速的显性时间,即 table 越大,比较所有数据所需的时间就越多。
更新现有记录: 选项 #2 但这再次假设当字段更改时修改日期将始终更改。 更快更新性能的提示。而不是即时更新记录。只需将记录保存在临时物理 table 中,然后在 SSIS 包中执行另一个步骤 SQL 脚本以使用该临时 table 作为参考来更新主要最终 table.这比在数据流上使用 SQL 任务要快得多。此任务将为每一行发出一个更新语句。