2016-12-20 9 views
1

私はSSISのスターターです。ご指導のある方は、具体的にご記入ください。ありがとうございました。 2つの異なるサーバーで2つのテーブルを同期しようとしています。サーバーB上のサーバA(60Kデータ)及び表BにSSIS同期異なるサーバー上に2つのテーブル

表A(60Kデータ)。 主にある3つの事:

  1. は、彼らが表A表AとBが持っているし、それらを更新し、両方のない表B.
  2. 更新レコードにある新しいレコードを追加します。
  3. 削除彼らは表Aにないレコードが、Bに

は、両方のテーブルには主キーがありません。しかし、一緒に主に特定のレコードを見つけるのを助けることができる2つの列が、私はそれを把握するために、この男のメソッドを使用しようとしましたが、失敗しました

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

(重複各テーブルが、多くはないがあります)。私は、成功したデータの2行を持っている2つのサンプルテーブルでこの方法を試しました。実際のテーブルで

私はそれらを一緒に使用する必要があるため、私はSortKeyPosition 1及び2のように列AとBを設定します。 (!!ISNULL(S_Column A)& & ISNULL(S_Column B))

& &(ISNULL([D_Column A:

全外側は、以下のように新しいレコードのため

条件分割をマージ結合に参加します】)& & ISNULL(D_Column B))

としてレコードを削除:

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

その結果、私は新しいレコードと0のレコードの34Kのデータを得ました削除する。 私は新しいレコードやものを削除するための600 + 1000 +のため、実際の結果のためにSQLでテストしてみました。 60k周りを更新する必要があります。私はこの問題の原因と解決方法を知らない。

更新:私は個人的にすべてのデータを交換するSQLコマンドを記述するためにOLE DBコマンドを使用(私は前に書き込みをしていますと仮定して)条件付き分割後(データの一部を更新する必要はありません)。私も更新のためのより良いソリューションを探しています。助け得ることを望ん

!もう一度、早い幸せな休日ありがとう!

+1

送信元と宛先は、実際の一般的な一意の識別子として機能フィールドの任意の組み合わせを持っていない場合は、通常、重大な問題が発生します。また、サーバー間で作業するときに、あるテーブルを別のサーバー上の一時テーブルに明示的にコピーすると、処理速度が大幅に向上することがよくあります。 –

+0

これはSQLの問題ではなく、物流の問題です。行を識別するユニークな方法がなければならず、それはユニークなID列の本質です。たとえ列の組み合わせを思いついても、ユニークなインデックスがなければパフォーマンスは悪くなります。 –

+0

私は2つのソーステーブルから異なるデータを選択するためにsqlコマンドを使用しました。私の問題は、マージ結合部にあるようです。理由を知らずにデータが正しく入力されない – user7322333

答えて

0

は、以下の手順を試してください:

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. 
+0

DELETE/UPDATE/INSERT操作の順序は、実行する必要がある索引参照の数を最小限に抑えるので、実際には重要です。 –

関連する問題