17.10 - ロックと同時並行性 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 詳細トピック

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Release Date
2021年7月
Content Type
プログラミング リファレンス
Publication ID
B035-1184-171K-JPN
Language
日本語 (日本)

以下のテーブルが示すように、LOCKING修飾子で指定するロックのタイプは、ロック マネージャによって適用されたロックのタイプと必ずしも一致しません。

インデックス列を含むテーブルに指定するロックの種類 システムによってテーブルに設定されたロックの種類
  • なし
  • WRITE
WRITE
  • ACCESS
  • READ
  • SHARE
READ
EXCLUSIVE EXCLUSIVE

ロックの種類の詳細については、<Teradata Vantage™- SQLリクエストおよびトランザクション処理、B035-1142>を参照してください。

LOCKING修飾子の詳細については、<Teradata Vantage™ - SQLデータ操作言語、B035-1146>を参照してください。

READまたはWRITEロックは、インデックス サブテーブルが作成された後、ディクショナリのロックおよびヘッダーの変更の前にEXCLUSIVEロックにアップグレードされます。これによってテーブルに対するSELECTリクエストがブロックされる時間が減り、並行性が向上します。

明示的なEXCLUSIVEロックを指定しない場合、ロックをEXCLUSIVEの強度にアップグレードするまで、テーブルに対するCREATE INDEXリクエストと、同じテーブルに対してACCESSまたはREADロックを持つSELECTリクエストとを並行して実行できます。アップグレードが生じた場合、ロックを最初に要求した文が他方の文をブロックします。

テーブルに対するEXCLUSIVEロックを保持するCREATE INDEXリクエストと、そのテーブルに対するCOLLECT STATISTICS文は、CREATE INDEX文がロックをEXCLUSIVEにアップグレードするリクエストを出すまで、並行して実行できます。アップグレードが生じた場合、COLLECT STATISTICSリクエストが完了するまでCREATE INDEX文はブロックされます。テーブルに対してその後にCOLLECT STATISTICS文を実行すると、その文はCREATE INDEXプロセスが完了するまでブロックされます。

CREATE INDEXリクエストは、同じテーブルに対してALTER TABLE文または他のCREATE INDEX文と並行して実行できません。ロックを最初に要求した文が、他方の文をブロックします。