【问题标题】:SSIS sync two tables on different serversSSIS 同步不同服务器上的两个表
【发布时间】:2016-12-21 02:57:46
【问题描述】:

我是 SSIS 的初学者。如果您有任何指导,请具体说明。谢谢你。 我正在尝试在两个不同的服务器上同步两个表。

服务器 A 上的表 A(60k 数据)和服务器 B 上的表 B(60k 数据)。 主要有3点:

  1. 在表 A 而非表 B 中添加新记录。
  2. 更新表 A 和 B 都有的记录并更新它们。
  3. 删除不在表 A 中但在 B 中的记录

两个表中都没有主键。但是将两列放在一起主要可以帮助找到某些记录(每个表都有重复,但不是很多)

http://www.rad.pasfu.com/index.php?/archives/150-Insert,-Update,-and-Delete-Destination-table-with-SSIS.html

我试过用这个人的方法来解决,但失败了。我在两个包含几行数据的示例表上尝试了这种方式,成功了。

在真实表格上,我将 A 列和 B 列设置为 SortKeyPosition 1 和 2,因为我必须一起使用它们。

Merge Join 处的完全外连接

新记录的条件拆分如下:

(!ISNULL(S_Column A) && !ISNULL(S_Column B)) && (ISNULL([D_Column A]) && ISNULL(D_Column B))

删除记录为:

(ISNULL(S_Column A) && ISNULL(S_Column B)) && (!ISNULL([D_Column A]) && !ISNULL(D_Column B))

结果,我获得了 34k 条新记录数据和 0 条删除记录数据。 我已经在 SQL 上测试了真实结果,1000+ 用于新记录,600+ 用于删除记录。 60k左右需要更新。我不知道是什么导致了这个问题以及如何解决它。

更新:我个人使用 OLE DB 命令编写 SQL 命令替换条件拆分后的所有数据(某些数据不需要更新)(假设我之前正在写)。我也在寻找更好的更新解决方案。

希望得到帮助!再次感谢您,祝您早日节日快乐!

【问题讨论】:

  • 如果源和目标没有任何作为实际通用唯一标识符的字段组合,您通常会遇到严重问题。此外,在服务器之间工作时,我经常发现将一个表显式复制到另一台服务器上的临时表会显着加快速度。
  • 这不是SQL问题,而是物流问题。您必须有一种独特的方式来识别行,这就是唯一 ID 列的本质。即使您想出组合列,如果没有唯一索引,性能也会很差。
  • 我使用 sql 命令从两个源表中选择不同的数据。看来我的问题出在合并连接部分。不知道原因,通过的数据不正确

标签: sql-server ssis


【解决方案1】:

尝试以下步骤:

COPY table from ServerA to a working table on ServerB
Handle Duplicates by theoretical index
    Are these 'duplicates' differentiatable by adding additional fields? 
        If so, add those fields to the indexing.
        If not, assume that all of these rows on ServerB will end up looking like one row from ServerA
DELETE rows from B that do not match rows from A
UPDATE rows in B where the keys match in A but data differs (it is worthwhile to compare the data and only update if the data is actually different).
INSERT the new rows from A
DROP or TRUNCATE the working table.

【讨论】:

  • DELETE / UPDATE / INSERT 操作顺序实际上很重要,因为这样可以最大限度地减少必须执行的索引查找次数。
猜你喜欢
  • 2016-08-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-26
  • 2011-08-27
  • 1970-01-01
相关资源
最近更新 更多