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

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/jpx1556733107962.ditamap
dita:ditavalPath
ja-JP/jpx1556733107962.ditaval
dita:id
B035-1184
Product Category
Software
Teradata Vantage

以下のテーブルが示すように、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文と並行して実行できません。ロックを最初に要求した文が、他方の文をブロックします。