2017-08-18 1 views
-1

これらのテーブルには類似の種類のデータを格納する複数のアーカイブテーブルがありますが、月別の形式でアーカイブされています。今では、複数の表ではなく、1つの表にすべてのアーカイブされたデータを入れる必要があります。ユニオンを使用してテーブルに大量挿入を優先する

私はSSISでUnionの助けを借りてこの作業を行っていますが、宛先テーブルにランダムに挿入されているようです。

アタッチは、変換に使用されるルートです。私は、インサートを優先させたい

enter image description here

、提案してください!

+1

不明。 「ランダムな挿入をする」とは何を意味し、どのようにして優先順位を付けたいですか? –

+0

一部が失敗した場合にプロセス全体を失敗させてロールバックする必要がない限り、私はunion allを使用するのではなく、別々のデータフロータスクを使用することをお勧めします。次に、タスク間の優先順位/フローを特定し、完了する順序を選択することができます。もしあなたがファイル名のレコードセットを作ることができれば、ループをセットアップして同じデータフローを使うことができます....最終的には、DBエンジンがインデックスとテーブル定義に基づいてストレージを最適化するため、挿入行の順序ではない位置 – Matt

答えて

0

各ソースに対応する優先度を持つ各OLE DBソースに追加の列「優先度」を追加することができます。次に、優先度別にソートコンポーネントを追加することができます。しかし、多くのデータがある場合、ソートコンポーネントはすべてのソースデータが読み込まれるまで待機するため、実際は非効率です。

あなたに合併/優先順位付け/ソートを行い、ターゲットに挿入する適切なソースSQL文を書くことをお勧めします。

また、ソースが異なるサーバー上にある場合は、ソーステーブルを反復してすべてをターゲットテーブルに挿入するForeachループコンテナを作成できます。参照のためにthis articleを使用できます。

関連する問題