SSIS - 删除并插入所有行或更新和插入

时间:2013-10-18 14:01:52

标签: sql sql-server ssis data-warehouse

我正试图找出最好的方法。

查看实时数据,我想将行插入DW表。不确定什么会更有效率。

  • 从目标表中删除所有行并插入整个视图。
  • 仅更新或插入新行。

删除行并插入整个视图需要4分钟。试图查看更新和仅插入新内容会使其更快。

现在我的实时数据库中有350k行,每周增加2000行。视图/表有90列,我不知道如何在SSIS中执行此操作。

  • 我应该在视图和目标表之间进行连接吗?
  • 我应该使用查找并插入新行吗? (这是否适用于 需要更新?)

我在线查看了几个示例,但不确定是否需要对所有列进行连接以检查更新的行。

1 个答案:

答案 0 :(得分:2)

需要考虑的一些事项 - 1.是否有必要保持历史?如果是,则不能截断并重新加载。

  1. 增长率:2000(行/周)* 52(周/年)= 104,000(行/年) 因此,在3年内,它将翻倍(大致)。它确实 - 并非 - 意味着它将开始花8分钟。可能需要5-6分钟。使用插入/更新技术,即使每次运行节省2分钟,这是至关重要的吗?如果没有,那么为什么会给流程带来复杂性。

  2. 如果你需要对两种方法进行定量比较,你需要编写代码并进行比较 - 我不知道任何捷径。

  3. 如果您决定进行插入/更新,我建议您在新列中保留所有90列的哈希值。在进行合并时,比较哈希,如果不同,则更新所有90列。 90个列是许多人可以单独比较的方式。

  4. 如果需要进一步帮助插入/更新哈希比较,请返回。