更新操作には、次の2つのフェーズがあります。
- 取得句 - 入力ストリームのデータはAMPに送信され、ターゲット テーブルにアクセス ロックが設定されてテーブルのアクセスが読み取り専用に制限されます。 取得フェーズは、変更点が適用される適切なAMPにすべてのデータ行が配置されたときに、完了します。
レコードは、プライマリ インデックス値のハッシュ値によって整列されます。 この整列順序は、ターゲット テーブルにレコードが適用される順序になります。 整列されたレコードは、ジョブの存続期間中は固定領域を必要とする一時的な作業テーブルに配置されます。
Teradata Databaseによって、ターゲット テーブルごとに1つの作業テーブルが作成されます。 取得フェーズでは作業テーブルにのみ書き込みを行なうので、ユーザーは継続してターゲット テーブルにアクセスできます。
ジョブに複数の作業テーブルがあるときに、拡張MultiLoadプロトコルを使用すると、最初の作業テーブルのみが作成されます。 Updateオペレータは、取得フェーズ中に、レコードを最初の作業テーブルに挿入します。 - 適用フェーズ - 整列された入力レコードは、適切なDMLコマンド(Insert、Update、Delete)を使用してターゲット テーブルのデータ ブロックに適用されます。 各ターゲット ブロックは一度メモリに読み取られ、そのときすべての変更点が適用されます。 このフェーズが完了するまでユーザーがテーブルにアクセスできないように、ターゲット テーブルのアクセス ロックは書き込みロックにアップグレードされます。 作業テーブルは、このフェーズの終了時、後続のクリーンアップ フェーズ中に削除されます。