私は SSIS の既存のバッチを大量に持っています。現在、Sybase db には、さまざまな段階で ssis パッケージによって複数回 (4 ~ 5 回) アクセスされている特定のテーブルがあります。すべてのアクセスには、異なる結合または何らかのフィルター条件があります。今私が気付いたのは、テーブルがアクセスされるたびに2つのアクティビティが発生することです(1.テーブルのデータページを読み取る必要があり、2.データをSSISサーバーのネットワーク経由で取り込む必要があります)。データ (すべてのレコード) を SSIS サーバーに送信し、それ以降のテーブルへのすべてのアクセスは SSIS サーバー上で行われます。ここで問題は、このテーブル データを SSIS サーバーのどこに格納できるかということです。テーブル データをメモリ (RAM) にキャッシュできるか、またはハードディスクにキャッシュできるかどうかです。私は SSIS で SSIS の効率があまり良くないので、「これを SSIS に実装する方法はありますか?」というヘルプを探しています。
2 に答える
使用している SSIS のバージョンは指定しませんが、2008 から現在のエディションを使用している場合は、Praveen の未加工ファイルの提案 (+1) に加えて、キャッシュ接続マネージャーを確認することもできます。CCM は、メモリ内ストレージの両方を提供するか、コンテンツをファイルに書き込んでメモリ負荷のバランスを取るように指定できます。
raw ファイルとキャッシュ接続マネージャーの選択のバランスをとるときは、使用方法を理解する必要があります。未加工またはフラットなファイルはデータ フロー ソースになることができますが、CCM はできません。逆に、CCM はルックアップ変換のソースになることができますが、ファイル接続はできません。
ファイル ストレージ メカニズムを使用することのトレードオフで留意すべきことの 1 つは、インデックスが失われることです。クエリで顧客を州ごとにセグメント化するとします。データベースは、「アンドラ プラデーシュ州のすべてのアクティブな顧客」を取得する際に、ファイル全体を読み取ってその基準に一致するレコードを探すよりもはるかに効率的です。オリッサ州の顧客の要求が変更された場合、同じインデックスを使用することもできますが、ファイル ストレージを最初から最後まで再処理して、条件を満たすレコードを探す必要があります。インデックスの効率の向上は、ソース システムにデータを保持するためのネットワークと読み取りのコストを克服するのに十分な場合があります。
いつものように、自分に最適なものをテストして見つけてください。
データをキャッシュする必要がある場合は、SSISで作成されたflat file
またはに格納できます。フラット ファイルからのデータへのアクセスは、RDBMS からのアクセスよりも常に高速です。回。raw file
temporary table
RAW ファイルは、フラット ファイルに比べてデータの読み取りまたは書き込みが非常に高速です。この記事では、両者のパフォーマンスについて説明します。
私の提案は、一時データが SSIS 以外の他のツールで使用されていない場合は、raw ファイルを使用できるということです。
同じ接続を持つ複数のデータ フロー タスク間で使用できる SSIS の一時テーブルの使用を説明する記事( RetainSameConnection プロパティ = True)