拡張MultiLoad プロトコルは、ターゲット テーブルに制限があるために従来のMultiLoadプロトコルが使用できないときに、そのターゲット テーブルにデータをロードするための代替方法になります。
あるジョブで従来のMultiLoadプロトコルを使用するか、拡張MultiLoadプロトコルを使用するかは、データベースが決定します。 そのジョブで従来のMultiLoadプロトコルが使用できるときには、そのプロトコルが使用されます。 そのジョブで従来のMultiLoadプロトコルが使用できないときには、拡張MultiLoadプロトコルが使用されます。 ユーザーは、ジョブで使用するプロトコルを選択できません。
次に、拡張MultiLoadプロトコルを使用するジョブを示します。
- ターゲット テーブルに、結合インデックス、ハッシュ インデックス、固有セカンダリ インデックス、または参照整合性が含まれています。
- ターゲット テーブルに、プライマリ インデックスがありません。
- ターゲット テーブルには、ラージオブジェクト(LOB)列があります。LOB列にはバイナリ ラージ オブジェクト(BLOB)または文字ラージ オブジェクト(CLOB)を指定できます。
- ターゲット テーブルにはXML列またはJSON列があります。
次の表は、従来のMultiLoadプロトコルと拡張MultiLoadプロトコルについて、Updateオペレータの観点からの相違点を示しています。
比較項目 | 従来のMultiLoadプロトコル . . . | 拡張MultiLoadプロトコル . . . |
---|---|---|
セッション数 | MultiLoadセッションを使用します。 | SQLセッションを使用します。 |
DML文 | DMLグループごとに複数のDML文をサポートします。 | DMLグループごとに1つのDML文または1つのUpsert文のみをサポートします。 |
バッファ サイズ(KB単位) | 最大16,384 KBをサポートします。 | N/A |
PACK係数 | N/A | Array Insert文ごとに最大16,383データ レコードをサポートします。 |
作業テーブル | 1つ以上の作業テーブルを使用できます。 | 最初の作業テーブルのみを使用します。 |
削除タスク | 削除タスクをサポートします。 | 削除タスクをサポートしません。 |
取得句 | ステージング作業テーブルへのデータの移入にデータ パーセルを使用します。 | ステージング作業テーブルへのデータの移入にArray Insert文を使用します。 |
アプリケーション句 | ステージング作業テーブルの行をターゲット テーブルに適用するために、EXEC MLOADリクエストを使用します。 | ステージング作業テーブルの行をターゲット テーブルに適用するために、Merge Intoリクエストを使用します。 |
パフォーマンス | 高速です。 | 低速です。 |
次に、拡張MultiLoadプロトコルの制限事項を示します。ターゲット テーブルにできないものは、次のとおりです。
- 列パーティション化されたテーブル。
- レプリケーション グループ
- プライマリ インデックスとして定義された識別列を持つテーブル。
- トリガーのあるテーブル