マージ結合変換

更新 : 2005 年 12 月 5 日

マージ結合変換では、FULL、LEFT、または INNER 結合を使用して並べ替えた 2 つのデータセットを結合した出力が生成されます。たとえば、LEFT 結合を使用して、製品情報を含むテーブルを、製品が製造された国または地域を一覧表示するテーブルと結合します。その結果、すべての製品とその製造元である国または地域を一覧表示するテーブルが生成されます。詳細については、「結合の使用」を参照してください。

マージ結合変換は、次の方法で構成できます。

  • FULL、LEFT、または INNER 結合のうち、どの結合を使用するかを指定します。
  • 結合で使用する列を指定します。
  • NULL 値を、他の NULL と等しい値として処理するかどうかを指定します。
    ms141775.note(ja-jp,SQL.90).gifメモ :
    NULL 値どうしを等しい値として扱わない場合、マージ結合変換では、SQL Server データベース エンジンによる処理方法と同様に NULL 値が処理されます。

マージ結合変換では、両方の入力が並べ替えられていて、結合列のメタデータが一致している必要があります。たとえば、数値データ型の列と文字データ型の列は結合できません。データが文字列データ型の場合、2 番目の入力の列の長さは、マージ先の最初の入力の列の長さ以下である必要があります。

データを並べ替えるには、並べ替え元または他の上流データ フロー コンポーネントの出力に対して並べ替えオプションを設定するか、並べ替え変換をデータ フローに挿入してから、マージ結合変換を実行します。並べ替えオプションでデータの並べ替えを設定していても、実際にデータの並べ替えが行われない場合、マージ結合操作で予測できない結果が発生する可能性があります。

この変換は、2 つの入力と 1 つの出力をとります。エラー出力はサポートされていません。

バッファ スロットル

マージ結合変換には、MaxBuffersPerInput プロパティがあります。このプロパティでは、入力ごとに一度にアクティブにできるバッファの最大数を指定します。このプロパティを使用して、変換バッファで使用されるメモリの量や変換のパフォーマンスを調整できます。バッファの数が増えると、変換で使用されるメモリの量も増え、パフォーマンスが向上します。MaxBuffersPerInput の既定値は 5 で、この数はほとんどの場合に適したバッファ数です。パフォーマンスを調整するには、4 または 6 など、多少異なるバッファ数を使用します。可能な場合は、バッファ数を極端に少なくすることは避けてください。たとえば、MaxBuffersPerInput を 5 ではなく 1 に設定すると、パフォーマンスに大きな影響を及ぼします。また、MaxBuffersPerInput は 0 に設定しないでください。この値にするとスロットルが行われず、データの負荷や使用可能なメモリの量によっては、パッケージが完了しないことがあります。

マージ結合変換では、デッドロックを回避するために、使用するバッファの数が MaxBuffersPerInput 一時的に増やされることがあります。デッドロックの状態が解決された後、MaxBuffersPerInput は構成した値に戻ります。

マージ結合変換の構成

プロパティを設定するには SSIS デザイナから行うか、またはプログラムによって設定します。

[マージ結合変換エディタ] ダイアログ ボックスで設定できるプロパティの詳細については、「[マージ結合変換エディタ]」を参照してください。

プログラムによって設定できるプロパティの詳細については、次のトピックのいずれかを参照してください。

プロパティの設定方法の詳細については、次のトピックのいずれかを参照してください。

参照

概念

マージ変換
全体結合変換
Integration Services の変換

ヘルプおよび情報

SQL Server 2005 の参考資料の入手

変更履歴

リリース 履歴

2005 年 12 月 5 日

新しい内容 :
  • 結合のパフォーマンスにおける MaxBuffersPerInput プロパティの役割についての説明を追加しました。