11.22.5 一時表の排他制御
一時表はトランザクション又はSQLセッションごとに固有のデータを保持し,ほかのユーザからアクセスされない表のため,実体化以外では,表の操作に対する排他は基本的に取得しません。一時表の排他制御について説明します。
(1) 一時表の実体化時に取得する排他
一時表が実体化する時に,次に示す排他を取得します。
資源種別名 |
内容 |
排他解除時期 |
|
---|---|---|---|
トランザクション固有一時表 |
SQLセッション固有一時表 |
||
RDAR |
RDエリア(表及びインデクス※1格納RDエリア) |
トランザクション決着時 |
DISCONNECT文完了時 |
TABL |
表 |
||
RATM |
ユーザディレクトリ表情報 |
||
RAIM |
ユーザディレクトリインデクス情報※1 |
||
SBMB |
ユーザディレクトリセグメント情報 |
||
TEMP |
一時表実体化管理情報 |
一時表の実体化後※2 |
|
TPID |
ユーザ固有ID管理(一時表) |
DISCONNECT文完了時 |
|
RDAS |
RDエリア状態管理 |
一時表の実体化後※2 |
|
RRAM, TRAL, TRAI |
RDエリア管理情報 |
||
PTBL |
前処理表 |
DISCONNECT文完了時 |
- 注※1
-
一時インデクスがある場合だけです。
- 注※2
-
この資源に対する排他は実体化時に一時的に取得する排他です。
(2) 一時表に対する操作で取得する排他
次のSQL文を実行すると,前処理表(PTBL)に対してだけ排他を取得します。
-
LOCK文
-
CREATE INDEX文
-
DROP INDEX文
-
DROP TABLE文
なお,一時表に対して次のSQL文を実行しても,ページ,行,キー値の排他は取得しません。
-
SELECT文
-
INSERT文
-
UPDATE文
-
DELETE文
-
PURGE TABLE文
(3) 排他待ち又は実行エラーになる操作
一時表を操作している場合,次に示す操作のどれかを同時に実行すると,排他待ち又は実行エラーになるおそれがあります。
-
pdclose(一時表用RDエリアのクローズ)
-
pdhold(一時表用RDエリアの閉塞)
-
pdopen(一時表用RDエリアのオープン)
-
pdrels(一時表用RDエリアの閉塞解除)
-
pdmodコマンドのcreate rdarea文(一時表用RDエリアの追加)
-
pdmodコマンドのinitialize rdarea文(一時表用RDエリアの再初期化)
-
pdmodコマンドのremove rdarea文(一時表用RDエリアの削除)
-
CREATE INDEX文(一時インデクスの定義)
-
DROP INDEX文(一時インデクスの削除)
-
DROP SCHEMA文(スキーマの削除)
-
DROP TABLE文(一時表の削除)