DDLまたはDCLリクエストの実行によって、データ ディクショナリが更新され、そのリクエストの処理中にシステム テーブルに適切なロックが設定されます。
ディクショナリのアクセスのロック粒度の最適化
並行処理を改善するために、DDLおよびDCL処理は、実用的なロックの最高の細分度を採用し、ロックの設定をできるだけ長く遅延させます。進行中のDDL操作で、それらのテーブルに掛けられたWRITEロックによって問合わせがブロックされる場合、システムは、ディクショナリ テーブルに応じて、ディクショナリで実行される行ハッシュREADロック リクエストをACCESSロックに格下げすることがあります。
これらの行ハッシュREADがブロックされていない場合、標準のREADロックが使用されます。
以下のディクショナリ ビューとテーブルは、ブロックされたREADロック リクエストでのロックの格下げにより影響を受けます。
- DBC.AccLogRuleTbl
- DBC.ConstraintNames
- DBC.Indexes
- DBC.TableConstraints
- DBC.TextTbl
- DBC.TriggersV
- DBC.TVFields
- DBC.TVM
- DBC.UDFInfo
ブロックされ、他に方法がないときに、ディクショナリ アクセスをREADロックからACCESSロックに格下げできるSQL文は、以下に示すものだけです。
- SELECT
- HELP COLUMN
- HELP CONSTRAINT
- HELP INDEX
- HELP STATISTICS
- SHOW FUNCTION/HASH INDEX/JOIN INDEX/MACRO/METHOD/PROCEDURE/TABLE/TRIGGER/TYPE/VIEW
これらは、システムによるロックの格下げです。LOCKINGリクエスト修飾子を使用してそれらを指定することはできません。詳細については、<Teradata Vantage™ SQLデータ操作言語、B035-1146>のLOCKING Request Modifierを参照してください。