17.10 - ロックの使用 - MultiLoad

Teradata® MultiLoadリファレンス

Product
MultiLoad
Release Number
17.10
Release Date
2021年6月
Content Type
プログラミング リファレンス
Publication ID
B035-2409-061K-JPN
Language
日本語 (日本)

Teradata MultiLoadでは、Teradata MultiLoadタスクに関係するテーブルに対して、次の2種類の長期ロックが使用されます。

  • タスクに関係する表に対して取得される、一連のトランザクション ロック
  • 一定の同時アクセスを拒否する表ヘッダーのフラグ

Teradata MultiLoadによってターゲット テーブルに配置されるロックは、多くの場合書き込みロックまたはそれ以下のレベルのロックです。次の場合にロックが設定されます。

  • RRELEASE MLOAD以外のすべてのTeradata MultiLoadユーティリティ コマンドを含む、Teradata MultiLoadのインポート タスクまたは削除タスク
  • Teradata MultiLoadタスクの実行中にダウンしていると判断されたAMPでの、フェーズ終了時のターゲット テーブル再構築
  • ターゲット表の入出力エラーによって引き起こされた論理の再構築

最も制限される排他ロックは、Teradata MultiLoadタスクの一時停止または中止後にRELEASE MLOAD文を実行する場合にのみ使用します。

次の表に、Teradata MultiLoadタスクによってテーブルに付加される各種ロックを示します。

Teradata MultiLoadでテーブルに付加されるロックの種類
ロックの種類 説明
アクセス アクセス ロックでは、書込みアクセスがロックされた表からでも、データを選択できます。

取得フェーズ中、Teradata MultiLoadではターゲット テーブルに対するアクセス ロックが設定されます。

インポートと削除の両方のタスクで、影響を受けるすべてのターゲット表へのアクセス ロックの選択アクセスが同時に存在します。
排他的 Teradata MultiLoadでは、Teradata MultiLoadタスクの一時停止または中止後にRELEASE MLOAD文が実行される場合、手動による回復手順を可能にするために排他ロックが使用されます。

RELEASE MLOAD機能には、次の特徴があります。

  • アクセス ロックされた問合わせがすべて完了するか打ち切られるまでは実行できない
  • ターゲット表に排他的ロックを取得するまでは終了しない
Teradata MultiLoadの取得 Teradata MultiLoad取得ロックは表ヘッダー内のフラグで、ある種のTeradata SQLアクセス文を効果的に拒否します。

取得ロックは次のように働きます。

  • すべての同時DMLアクセスとDROP DDL文を認める。
  • DROP以外のDDL文を拒否する。

Teradata MultiLoadでは、次の表に対してそれぞれ取得ロックが設定されます。

  • ターゲット表(予備フェーズの開始から、取得フェーズ終了時のソートに至るまでの間)
  • エラー表(Teradata MultiLoadジョブ全体の期間に渡って)
Teradata MultiLoadのアプリケーション Teradata MultiLoadのアプリケーション ロックは表ヘッダー内のフラグで、ある種のTeradata SQLアクセス文を効果的に拒否する。

アプリケーション ロックは次のように働きます。

  • すべての同時選択ロック アクセスとDROP DDL文を認める
  • その他のDMLおよびDDL文をすべて拒否する。

Teradata MultiLoadでは、次の表に対してそれぞれアプリケーション ロックが設定されます。

  • ターゲット表(アプリケーション フェーズの期間中)
  • 作業表(Teradata MultiLoadジョブ全体の期間に渡って)
書き込み 書込みロックでは、一人のユーザーだけが表を修正できます。

Teradata MultiLoadでは、次の表に対して書込みロックが設定されます。

  • ターゲット表(アプリケーション フェーズの期間中)
  • 各タスク トランザクションの作業表とエラー表
Teradata MultiLoadのエラー表を問合わせする場合には、ロックの時間切れによるTeradata MultiLoadタスクの中止を避けるために、アクセス ロックの選択アクセスを使用する必要があります。