スケーラブルデータベースサーバ HiRDB Version 8 UAP開発ガイド

[目次][索引][前へ][次へ]

3.4.2 排他制御のモード

<この項の構成>
(1) モードの種類
(2) モードの遷移
(3) モードの組み合わせ
(4) CREATE TABLEにWITHOUT ROLLBACKオプションを指定した表の排他解除タイミング

(1) モードの種類

排他制御では,各々の排他資源に対して5種類の排他制御モードを用います。

  1. 共用モード(PR:Protected Retrieve)
    1トランザクションだけが排他資源を占有し,ほかのトランザクションには参照だけを許すモードです。
  2. 排他モード(EX:EXclusive)
    1トランザクションだけが排他資源を占有し,ほかのトランザクションには参照,追加,更新,及び削除を許さないモードです。
  3. 意図共用モード(SR:Shared Retrieve)
    ある資源に対して共用モードで排他を掛けた場合,その資源の上位の資源に対して掛かるモードです。ほかのトランザクションにも排他資源の参照,追加,更新,及び削除を許すモードです。
  4. 意図排他モード(SU:Shared Update)
    ある資源に対して排他モードで排他を掛けた場合,その資源の上位の資源に対して掛かるモードです。ほかのトランザクションにも排他資源の参照,追加,更新,及び削除を許すモードです。
  5. 共用意図排他モード(PU:Protected Update)
    参照,追加,更新,及び削除を許されているモードです。ほかのトランザクションには参照だけを許すモードです。
    このモードは1〜4とは異なり,排他制御モードの遷移の結果として発生します。

排他制御では,排他資源の上位から下位へと順番に排他が掛けられます。排他を掛けていく途中で同一資源に対して,一つでもほかのトランザクションと同時実行できないトランザクションがある場合,そのトランザクションは待ち状態になります。また,上位から下位の資源へ排他を掛けていく途中にPRモード,又はEXモードがある場合,そのモードが掛かっている資源より下位の資源には排他が掛かりません。

同一資源に対して2ユーザが同じ処理をすると仮定したとき,排他制御モードの違いによって,同時に実行できたりできなかったりします。排他制御モードの違いによる2ユーザの同時実行性を次の表に示します。

表3-8 排他制御モードの違いによる2ユーザの同時実行性

モードの種類 SR PR SU PU EX
SR ○ ○ ○ ○ ×
PR ○ ○ × × ×
SU ○ × ○ × ×
PU ○ × × × ×
EX × × × × ×

(凡例)
○:同時に実行できます。
×:同時に実行できません。

2ユーザが同時に実行できない場合,一般にはトランザクションのコミット待ちになります。ほかのトランザクションのコミット待ちをしないでエラーリターンにする場合,SQL文にWITH ROLLBACK,又はNO WAITを指定します。

(2) モードの遷移

同一ユーザが同一資源に対して,異なる種類の排他制御のモードで二重,三重と次々に排他を掛けていくと,モードは強い方へと遷移していきます。

一度強いモードで排他を掛けてしまうと,後から弱いモードを掛けても,弱いモードへは遷移しません。例えば,行の更新をするときにEXで排他を掛けた場合,更新した行を参照するためにPRで排他を掛けたとしても,その行の排他制御のモードはEXのままです。

現在の排他制御のモードに対して,更に排他制御を掛けた場合のモードの遷移規則を次の表に示します。

表3-9 排他制御のモードの遷移規則

後から掛けるモード 現在のモード
SR PR SU PU EX
SR − − − − −
PR PR − PU − −
SU SU PU − − −
EX EX EX EX EX −

(凡例)
−:モードは遷移しません。
−以外:遷移後のモードです。

(3) モードの組み合わせ

排他制御は,SQL文の種類,及び実行環境によって,モードの組み合わせが異なります。

SQL文の種類,及び実行環境の違いによる排他制御のモードの組み合わせの代表例として行排他の場合を表3-10,表3-11に,ページ排他の場合を表3-12,表3-13に,インデクスキー値無排他の場合を表3-14,表3-15に示します。また,表を検査保留状態に設定する場合の排他を表3-16,表3-17に示します。

表3-10 排他制御のモードの組み合わせの代表例(行排他の場合)(1/2)

SQL文 資源
上位←   →下位
インナレプリカ構成管理
※6
レプリカグループ構成管理※8 RDエリア 表 表(NOWAIT検索)
表用 インデクス用 順序数生成子用 最終HiRDBファイル※5
検索 NOWAIT指定 SR SR SR − − − SR
WITH SHARE指定 SR SR SR − − SR −
WITH EXCLUSIVE指定※1 SR SR SU SR − − SU −
FOR UPDATE句指定※1 SR SR SU SR − − SU −
上記以外 SR SR SR − − SR −
更新※1※12 NEXT VALUE句指定 SR SU SU EX SU −
上記以外 SR SU − EX SU −
追加※1 NEXT VALUE句指定 SR SU SU EX SU −
上記以外 SR SU − EX SU −
削除※1 SR SR SU − −   −
LOCK文 SHARE指定
※11
SR SR SR − − − PR −
EXCLUSIVE指定 非共用表 SR SR SU − − − EX −
共用表※11 SR SR EX − − − EX −
表削除※2※13 − − SU − −   EX
インデクス 定義※13 − − SU − − EX −
削除※3※13 − − SR
※10
SU − − EX※4 EX
全行削除※2※13※14 SR SR SU − − EX
表定義変更※13 SR※9 SR※9 SU※7 − − EX
順序数生成子定義 − − − − SU − − −
順序数生成子削除 − − − − SU − − −

(凡例)
−:排他を掛けません。
−以外:排他を掛けるモードです。

注※1
UAP実行時にデータベースの更新ログを取得しない場合,表に対してEXモードで排他を掛けてコミットまで保持します。行,及びキーに対する排他は掛けません。
なお,UAP実行時にデータベースの更新ログを取得しない運用については,マニュアル「HiRDB Version 8 システム運用ガイド」を参照してください。

注※2
表,及びインデクスのすべての使用中セグメントに対してEXモードで排他を掛けてコミットまで保持します。

注※3
インデクスのすべての使用中セグメントに対してEXモードで排他を掛けてコミットまで保持します。

注※4
プラグインインデクスの場合はEXモードで排他が掛かりますが,B-Treeインデクスでは排他は掛かりません。

注※5
RDエリアの自動増分が適用されている場合,自動増分処理の開始から終了まで,RDエリアを構成する最終HiRDBファイルに対して排他が掛かります。

注※6
インナレプリカ機能を使用している場合,処理対象RDエリアがあるサーバに対して排他が掛かります。ただし,pd_inner_replica_lock_shiftオペランドにYを指定している場合は排他が掛かりません。

注※7
RDエリアの追加,及び空き領域の再利用機能の変更をする場合,排他が掛かります。

注※8
カレントDBの変更,レプリカの定義や削除,又は更新可能なオンライン再編成実行時など,インナレプリカの構成に関係する変更をした場合,処理対象となるRDエリアがあるレプリカグループに対して排他が掛かります。pd_inner_replica_lock_shiftオペランドにYを指定している場合は常に排他が掛かります。

注※9
処理対象のRDエリアに対してアクセスする場合に排他が掛かります。

注※10
インナレプリカ機能を適用している場合に排他が掛かります。

注※11
HiRDB/パラレルサーバの場合,共用表をアクセスするときは,すべてのバックエンドサーバに対して排他が掛かります。

注※12
HiRDB/パラレルサーバの場合,共用表に対してインデクスを更新しないUPDATE文を実行するときは,すべてのバックエンドサーバに対して排他が掛かります。

注※13
HiRDB/パラレルサーバの場合,共用表及び共用インデクスに対して実行するときは,すべてのバックエンドサーバに対してEXCLUSIVE指定のLOCK文相当の排他が掛かります。HiRDB/シングルサーバの場合,共用表及び共用インデクスに対して実行するときは,EXCLUSIVE指定のLOCK文相当の排他が掛かります。

注※14
システム共通定義のpd_check_pendingオペランドにUSEを指定,又は指定を省略した場合,ディクショナリ表(資源種別:3005 種別名:DICT)に対して一時的にEXモードで排他を掛けます。また,データディクショナリ用RDエリア(資源種別:0001 種別名:RDAR)に対してトランザクションが終了するまでSUモードで排他を掛けます。

 

表3-11 排他制御のモードの組み合わせの代表例(行排他の場合)(2/2)

SQL文 資源
上位←   →下位
インデクス インデクス情報ファイル※4 順序数生成子 ページ 行 キー値 論理ファイル
検索 NOWAIT指定 − − − − − − PR
WITH SHARE指定 − − − − PR PR PR
WITH EXCLUSIVE指定※1 − − − − EX PR EX
FOR UPDATE句指定※1 − − − − EX PR EX
上記以外 − − − − PR PR PR
更新※1※6 NEXT VALUE句指定 − EX SU − EX EX EX
上記以外 − EX − − EX EX EX
追加※1 NEXT VALUE句指定 − EX SU − EX EX EX
上記以外 − EX − − EX EX EX
削除※1 − − − − − EX EX
LOCK文 SHARE指定※5 − − − − − − −
EXCLUSIVE指定 非共用表 − − − − − − −
共用表※5 − − − − − − −
表削除※2※7 − − − − − − −
インデクス 定義※7 − − − − − − −
削除※3※7 EX − − − − − −
全行削除※2※7 − − − − − − −
表定義変更※7 − − − − − − −
順序数生成子定義 − − EX − − − −
順序数生成子削除 − − EX − − − −

(凡例)
−:排他を掛けません。
−以外:排他を掛けるモードです。

注※1
UAP実行時にデータベースの更新ログを取得しない場合,表に対してEXモードで排他を掛けてコミットまで保持します。行,及びキーに対する排他は掛けません。
なお,UAP実行時にデータベースの更新ログを取得しない運用については,マニュアル「HiRDB Version 8 システム運用ガイド」を参照してください。

注※2
表,及びインデクスのすべての使用中セグメントに対してEXモードで排他を掛けてコミットまで保持します。

注※3
インデクスのすべての使用中セグメントに対してEXモードで排他を掛けてコミットまで保持します。

注※4
プラグインインデクスの遅延一括作成機能を使用して,プラグインインデクスに対して更新をしたときに掛ける排他です。この排他は,コミットまで保持されます。

注※5
HiRDB/パラレルサーバの場合,共用表をアクセスするときは,すべてのバックエンドサーバに対して排他が掛かります。

注※6
HiRDB/パラレルサーバの場合,共用表に対してインデクスを更新しないUPDATE文を実行するときは,すべてのバックエンドサーバに対して排他が掛かります。

注※7
HiRDB/パラレルサーバの場合,共用表及び共用インデクスに対して実行するときは,すべてのバックエンドサーバに対してEXCLUSIVE指定のLOCK文相当の排他が掛かります。

注※8
コミット,又はロールバックするまでEXモードで排他が掛かります。ただし,検索処理は削除行に対して排他を掛けないため,排他待ちになりません。

 

表3-12 排他制御のモードの組み合わせの代表例(ページ排他の場合)(1/2)

SQL文 資源
上位←   →下位
インナレプリカ構成管理
※6
レプリカグループ構成管理※8 RDエリア 表 表(NOWAIT検索)
表用 インデクス用 順序数生成子用 最終HiRDBファイル※5
検索 NOWAIT指定 SR SR SR − − − SR
WITH SHARE指定 SR SR SR − − SR −
WITH EXCLUSIVE指定※1 SR SR SU SR − − SU −
FOR UPDATE句指定※1 SR SR SU SR − − SU −
上記以外 SR SR SR − − SR −
更新※1※12 NEXT VALUE句指定 SR SR SU SU EX SU −
上記以外 SR SR SU − EX SU −
追加※1 NEXT VALUE句指定 SR SR SU SU EX SU −
上記以外 SR SR SU − EX SU −
削除※1 SR SR SU − − SU −
LOCK文 SHARE指定
※11
SR SR SR − − − PR −
EXCLUSIVE指定 非共用表 SR SR SU − − − EX −
共用表※11 SR SR EX − − − EX −
表削除※2※13 − − SU − − EX EX
インデクス 定義※13 − − SU − − EX −
削除※3※13 − − SR
※10
SU − − EX※4 EX
全行削除※2※13※14 SR SR SU − − EX EX
表定義変更※13 SR※9 SR※9 SU※7 − − EX EX
順序数生成子定義 − − − SU − − −
順序数生成子削除 − − − SU − − −

(凡例)
−:排他を掛けません。
−以外:排他を掛けるモードです。

注※1
UAP実行時にデータベースの更新ログを取得しない場合,表に対してEXモードで排他を掛けてコミットまで保持します。ページ,及びキーに対する排他は掛けません。
なお,UAP実行時にデータベースの更新ログを取得しない運用については,マニュアル「HiRDB Version 8 システム運用ガイド」を参照してください。

注※2
表,及びインデクスのすべての使用中セグメントに対してEXモードで排他を掛けてコミットまで保持します。

注※3
インデクスのすべての使用中セグメントに対してEXモードで排他を掛けてコミットまで保持します。

注※4
プラグインインデクスの場合はEXモードで排他が掛かりますが,B-Treeインデクスでは排他は掛かりません。

注※5
RDエリアの自動増分が適用されている場合,自動増分処理の開始から終了まで,RDエリアを構成する最終HiRDBファイルに対して排他が掛かります。

注※6
インナレプリカ機能を使用している場合,処理対象RDエリアがあるサーバに対して排他が掛かります。ただし,pd_inner_replica_lock_shiftオペランドにYを指定している場合は排他が掛かりません。

注※7
RDエリアの追加,及び空き領域の再利用機能の変更をする場合,排他が掛かります。

注※8
カレントDBの変更,レプリカの定義や削除,又は更新可能なオンライン再編成実行時など,インナレプリカの構成に関係する変更をした場合,処理対象となるRDエリアがあるレプリカグループに対して排他が掛かります。pd_inner_replica_lock_shiftオペランドにYを指定している場合は常に排他が掛かります。

注※9
処理対象のRDエリアに対してアクセスする場合に排他が掛かります。

注※10
インナレプリカ機能を適用している場合に排他が掛かります。

注※11
HiRDB/パラレルサーバの場合,共用表をアクセスするときは,すべてのバックエンドサーバに対して排他が掛かります。

注※12
HiRDB/パラレルサーバの場合,共用表に対してインデクスを更新しないUPDATE文を実行するときは,すべてのバックエンドサーバに対して排他が掛かります。

注※13
HiRDB/パラレルサーバの場合,共用表及び共用インデクスに対して実行するときは,すべてのバックエンドサーバに対してEXCLUSIVE指定のLOCK文相当の排他が掛かります。HiRDB/シングルサーバの場合,共用表及び共用インデクスに対して実行するときは,EXCLUSIVE指定のLOCK文相当の排他が掛かります。

注※14
システム共通定義のpd_check_pendingオペランドにUSEを指定,又は指定を省略した場合,ディクショナリ表(資源種別:3005 種別名:DICT)に対して一時的にEXモードで排他を掛けます。また,データディクショナリ用RDエリア(資源種別:0001 種別名:RDAR)に対してトランザクションが終了するまでSUモードで排他を掛けます。

 

表3-13 排他制御のモードの組み合わせの代表例(ページ排他の場合)(2/2)

SQL文 資源
上位←   →下位
インデクス インデクス情報ファイル※4 順序数生成子 ページ 行 キー値 論理ファイル
検索 NOWAIT指定 − − − − − − PR
WITH SHARE指定 − − − PR − PR PR
WITH EXCLUSIVE指定※1 − − − EX − PR EX
FOR UPDATE句指定※1 − − − EX − PR EX
上記以外 − − − PR − PR PR
更新※1※6 NEXT VALUE句指定 − EX SU EX − EX EX
上記以外 − EX − EX − EX EX
追加※1 NEXT VALUE句指定 − EX SU EX − EX EX
上記以外 − EX − EX − EX EX
削除※1 − − − EX − EX EX
LOCK文 SHARE指定※5 − − − − − − −
EXCLUSIVE指定 非共用表 − − − − − − −
共用表※5 − − − − − − −
表削除※2※7 − − − − − − −
インデクス 定義※7 − − − − − − −
削除※3※7 EX − − − − − −
全行削除※2※7 − − − − − − −
表定義変更※7 − − − − − − −
順序数生成子定義 − − EX − − − −
順序数生成子削除 − − EX − − − −

(凡例)
−:排他を掛けません。
−以外:排他を掛けるモードです。

注※1
UAP実行時にデータベースの更新ログを取得しない場合,表に対してEXモードで排他を掛けてコミットまで保持します。ページ,及びキーに対する排他は掛けません。
なお,UAP実行時にデータベースの更新ログを取得しない運用については,マニュアル「HiRDB Version 8 システム運用ガイド」を参照してください。

注※2
表,及びインデクスのすべての使用中セグメントに対してEXモードで排他を掛けてコミットまで保持します。

注※3
インデクスのすべての使用中セグメントに対してEXモードで排他を掛けてコミットまで保持します。

注※4
プラグインインデクスの遅延一括作成機能を使用して,プラグインインデクスに対して更新をしたときに掛ける排他です。この排他は,コミットまで保持されます。

注※5
HiRDB/パラレルサーバの場合,共用表をアクセスするときは,すべてのバックエンドサーバに対して排他が掛かります。

注※6
HiRDB/パラレルサーバの場合,共用表に対してインデクスを更新しないUPDATE文を実行するときは,すべてのバックエンドサーバに対して排他が掛かります。

注※7
HiRDB/パラレルサーバの場合,共用表及び共用インデクスに対して実行するときは,すべてのバックエンドサーバに対してEXCLUSIVE指定のLOCK文相当の排他が掛かります。

 

表3-14 排他制御のモードの組み合わせの代表例(インデクスキー値無排他の場合)(1/2)

SQL文 資源
上位←   →下位
インナレプリカ構成管理※5 レプリカグループ構成管理※7 RDエリア 表 表(NOWAIT検索)
表用 インデクス用 順序数生成子用 最終HiRDBファイル※4
検索 NOWAIT指定 SR SR SR − − − SR
WITH SHARE指定 SR SR SR − − SR −
WITH EXCLUSIVE指定※10 SR SR SU SR − − SU SU
FOR UPDATE句指定※10 SR SR SU SR − − SU SU
上記以外 SR SR SR − − SR −
更新※10※12 NEXT VALUE句指定 SR SR SU SU EX SU −
上記以外 SR SR SU − EX SU −
追加※10 NEXT VALUE句指定 SR SR SU SU EX SU −
上記以外 SR SR SU − EX SU −
削除※10 SR SR SU − − SU −
LOCK文 SHARE指定
※11
SR SR SR − − − PR −
EXCLUSIVE指定 非共用表 SR SR − − − − EX −
共用表※11 SR SR − EX − − EX −
表削除※1※13 − − SU − − EX EX
インデクス 定義※13 − − SU − − EX −
削除※2※13 − − SR
※9
− − − EX※3 EX
全行削除※1※13※14 SR SR SU − − EX EX
表定義変更※13 SR※8 SR※8 SU※6 − − EX EX
順序数生成子定義 − − − SU − − −
順序数生成子削除 − − − SU − − −

(凡例)
−:排他を掛けません。
−以外:排他を掛けるモードです。

注※1
表,及びインデクスのすべての使用中セグメントに対してEXモードで排他を掛けて,コミットまで保持します。

注※2
インデクスのすべての使用中セグメントに対してEXモードで排他を掛けて,コミットまで保持します。

注※3
プラグインインデクスの場合はEXモードで排他が掛かりますが,B-Treeインデクスでは排他は掛かりません。

注※4
RDエリアの自動増分が適用されている場合,自動増分処理の開始から終了まで,RDエリアを構成する最終HiRDBファイルに対して排他が掛かります。

注※5
インナレプリカ機能を使用している場合,処理対象RDエリアがあるサーバに対して排他が掛かります。ただし,pd_inner_replica_lock_shiftオペランドにYを指定している場合は排他が掛かりません。

注※6
RDエリアの追加,及び空き領域の再利用機能の変更をする場合,排他が掛かります。

注※7
カレントDBの変更,レプリカの定義や削除,又は更新可能なオンライン再編成実行時など,インナレプリカの構成に関係する変更をした場合,処理対象となるRDエリアがあるレプリカグループに対して排他が掛かります。pd_inner_replica_lock_shiftオペランドにYを指定している場合は常に排他が掛かります。

注※8
処理対象のRDエリアに対してアクセスする場合に排他が掛かります。

注※9
インナレプリカ機能を適用している場合に排他が掛かります。

注※10
UAP実行時にデータベースの更新ログを取得しない場合,表に対してEXモードで排他を掛けて,コミットまで保持します。行及びキー値には排他を掛けません。なお,UAP実行時にデータベースの更新ログを取得しない運用については,マニュアル「HiRDB Version 8 システム運用ガイド」を参照してください。

注※11
HiRDB/パラレルサーバの場合,共用表をアクセスするときは,すべてのバックエンドサーバに対して排他が掛かります。

注※12
HiRDB/パラレルサーバの場合,共用表に対してインデクスを更新しないUPDATE文を実行するときは,すべてのバックエンドサーバに対して排他が掛かります。

注※13
HiRDB/パラレルサーバの場合,共用表及び共用インデクスに対して実行するときは,すべてのバックエンドサーバに対してEXCLUSIVE指定のLOCK文相当の排他が掛かります。HiRDB/シングルサーバの場合,共用表及び共用インデクスに対して実行するときは,EXCLUSIVE指定のLOCK文相当の排他が掛かります。

注※14
システム共通定義のpd_check_pendingオペランドにUSEを指定,又は指定を省略した場合,ディクショナリ表(資源種別:3005 種別名:DICT)に対して一時的にEXモードで排他を掛けます。また,データディクショナリ用RDエリア(資源種別:0001 種別名:RDAR)に対してトランザクションが終了するまでSUモードで排他を掛けます。

 

表3-15 排他制御のモードの組み合わせの代表例(インデクスキー値無排他の場合)(2/2)

SQL文 資源
上位←   →下位
インデクス インデクス情報ファイル※3 順序数生成子 ページ 行 キー値 論理ファイル
検索 NOWAIT指定 − − − − − − PR
WITH SHARE指定 − − − −,PR
※4
PR,−
※4
− PR
WITH EXCLUSIVE指定※6 − − − −,EX
※4
EX,−
※4
− EX
FOR UPDATE句指定※6 − − − −,EX
※4
EX,−
※4
− EX
上記以外 − − − −,PR
※4
PR,−
※4
− PR
更新※6※8 NEXT VALUE句指定 − EX SU −,EX
※4※5
EX,−
※4※5
− EX
上記以外 − EX − −,EX
※4※5
EX,−
※4※5
− EX
追加※6 NEXT VALUE句指定 − EX SU −,EX
※4※5
EX,−
※4※5
− EX
上記以外 − EX − −,EX
※4※5
EX,−
※4※5
− EX
削除※6 − − − −,EX
※4※5
EX,−
※4※5
− EX
LOCK文 SHARE指定※7 − − − − − − −
EXCLUSIVE指定 非共用表 − − − − − − −
共用表※7 − − − − − − −
表削除※1※9 − − − − − − −
インデクス 定義※9 − −   − − − −
削除※2※9 EX − − − − − −
全行削除※1※9 − − − − − − −
表定義変更※9 − − − − − − −
順序数生成子定義 − − EX − − − −
順序数生成子削除 − − EX − − − −

(凡例)
−:排他を掛けません。
−以外:排他を掛けるモードです。

注※1
表,及びインデクスのすべての使用中セグメントに対してEXモードで排他を掛けて,コミットまで保持します。

注※2
インデクスのすべての使用中セグメントに対してEXモードで排他を掛けて,コミットまで保持します。

注※3
プラグインインデクスの遅延一括作成機能を使用して,プラグインインデクスに対して更新をした場合に掛ける排他です。コミットまで保持します。

注※4
行排他の場合,資源「行」に排他を掛けて,資源「ページ」には排他を掛けません。
ページ排他の場合,資源「行」に排他を掛けないで,資源「ページ」に排他を掛けます。

注※5
ユニークインデクスが定義されている場合,ページ排他の場合でも資源「行」に排他が掛かります。

注※6
UAP実行時にデータベースの更新ログを取得しない場合,表に対してEXモードで排他を掛けて,コミットまで保持します。行及びキー値には排他を掛けません。なお,UAP実行時にデータベースの更新ログを取得しない運用については,マニュアル「HiRDB Version 8 システム運用ガイド」を参照してください。

注※7
HiRDB/パラレルサーバの場合,共用表をアクセスするときは,すべてのバックエンドサーバに対して排他が掛かります。

注※8
HiRDB/パラレルサーバの場合,共用表に対してインデクスを更新しないUPDATE文を実行するときは,すべてのバックエンドサーバに対して排他が掛かります。

注※9
HiRDB/パラレルサーバの場合,共用表及び共用インデクスに対して実行するときは,すべてのバックエンドサーバに対してEXCLUSIVE指定のLOCK文相当の排他が掛かります。

 

表3-16 排他制御のモードの組み合わせの代表例(検査保留状態に設定する場合)(1/2)

SQL文及び
ユティリティ
資源※1
上位←   →下位
RDエリア 表 表(NOWAIT検索)
表用※2 インデクス用 LOB用 最終HiRDBファイル
全行削除※4 SU − − − EX EX
表定義変更(分割格納条件変更) SU − − − EX EX
データベース作成ユティリティ(pdload)※3 SU − − − EX EX
データベース再編成ユティリティ(pdrorg)※3 SU − − − EX EX
データベース構成変更ユティリティ(pdmod) SU − − − EX EX
整合性チェックユティリティ(pdconstck)※3 SU − − − EX EX
オンライン再編成の追い付き反映コマンド(pdorend)※3 SU − − − EX EX

(凡例)
−:排他を掛けません。
−以外:排他を掛けるモードです。

注※1
参照制約,又は検査制約を定義した表に関する資源を示します。

注※2
検査保留状態に設定するRDエリアに対して排他を掛けます。

注※3
HiRDB/パラレルサーバの場合,共用表に対して実行するときは,すべてのバックエンドサーバに対してEXCLUSIVE指定のLOCK文相当の排他が掛かります。共用表のLOCK文実行時に掛かる排他制御モードについては,表3-10〜表3-15のLOCK文のEXCLISIVE指定の行を参照してください。

注※4
システム共通定義のpd_check_pendingオペランドにUSEを指定,又は指定を省略した場合,ディクショナリ表(資源種別:3005 種別名:DICT)に対して一時的にEXモードで排他を掛けます。また,データディクショナリ用RDエリア(資源種別:0001 種別名:RDAR)に対してトランザクションが終了するまでSUモードで排他を掛けます。

 

表3-17 排他制御のモードの組み合わせの代表例(検査保留状態に設定する場合)(2/2)

SQL文及び
ユティリティ
資源※1
上位←   →下位
インデクス インデクス情報ファイル ページ 行 キー値 論理ファイル
全行削除 − − − − − −
表定義変更(分割格納条件変更) − − − − − −
データベース作成ユティリティ(pdload)※2 − − − − − −
データベース再編成ユティリティ(pdrorg)※2 − − − − − −
データベース構成変更ユティリティ(pdmod) − − − − − −
整合性チェックユティリティ(pdconstck)※2 − − − − − −
オンライン再編成の追い付き反映コマンド(pdorend)※2 − − − − − −

(凡例)
−:排他を掛けません。

注※1
参照制約,又は検査制約を定義した表に関する資源を示します。

注※2
HiRDB/パラレルサーバの場合,共用表に対して実行するときは,すべてのバックエンドサーバに対してEXCLUSIVE指定のLOCK文相当の排他が掛かります。共用表のLOCK文実行時に掛かる排他制御モードについては,表3-10〜表3-15のLOCK文のEXCLISIVE指定の行を参照してください。

(4) CREATE TABLEにWITHOUT ROLLBACKオプションを指定した表の排他解除タイミング

CREATE TABLEにWITHOUT ROLLBACKオプションを指定した表の排他解除タイミングを表3-18〜表3-21に示します。

表3-18 CREATE TABLEにWITHOUT ROLLBACKオプションを指定した表の排他解除タイミング(インデクスが定義されていない場合(1/2))

SQL文 資源
上位←   →下位
インナレプリカ構成管理※ レプリカグループ構成管理※ RDエリア 表 表(NOWAIT検索)
表用 インデクス用 最終HiRDBファイル
検索 NOWAIT指定 × × × − − − ×
WITH SHARE指定 × × × − − × −
WITH EXCLUSIVE指定 × × × − − × −
FOR UPDATE句指定 × × × − − × −
上記以外 × × × − − × −
更新 × × × − − × −
追加 × × × − − × −
削除 × × × − − × −
LOCK文 SHARE指定 × × × − − × −
EXCLUSIVE指定 × × × − − × −
表削除 − − × − − × ×
インデクス 定義 − − × − − × ×
削除 − − × − − × ×
全行削除 × × × − − × ×
表定義変更 − − − − − × ×

(凡例)
−:排他が掛からない,又は該当しない(ページ排他は指定できない)ことを示します。
×:SQL実行時に排他が解除されないことを示します。

注※
インナレプリカ機能を使用している場合,インナレプリカ構成管理に排他が掛かります。更新可能なオンライン再編成を使用している場合,インナレプリカ構成管理又はレプリカグループ構成管理に排他が掛かります。

 

表3-19 CREATE TABLEにWITHOUT ROLLBACKオプションを指定した表の排他解除タイミング(インデクスが定義されていない場合(2/2))

SQL文 資源
上位←   →下位
インデクス インデクス情報ファイル ページ 行 キー値 論理ファイル
検索 NOWAIT指定 − − − − − −
WITH SHARE指定 − − − × − −
WITH EXCLUSIVE指定 − − − × − −
FOR UPDATE句指定 − − − × − −
上記以外 − − − × − −
更新 − − − ○ − −
追加 − − − ○ − −
削除 − − − ○ − −
LOCK文 SHARE指定 − − − − − −
EXCLUSIVE指定 − − − − − −
表削除 − − − − − −
インデクス 定義 − − − − − −
削除 − − − − − −
全行削除 − − − − − −
表定義変更 − − − − − −

(凡例)
−:排他が掛からない,又は該当しない(ページ排他は指定できない)ことを示します。
○:SQL実行時に排他が解除されることを示します。
×:SQL実行時に排他が解除されないことを示します。

 

表3-20 CREATE TABLEにWITHOUT ROLLBACKオプションを指定した表の排他解除タイミング(インデクスが定義されている場合(1/2))

SQL文 資源
上位←   →下位
インナレプリカ構成管理※ レプリカグループ構成管理※ RDエリア 表 表(NOWAIT検索)
表用 インデクス用 最終HiRDBファイル
検索 NOWAIT指定 × × × × − − ×
WITH SHARE指定 × × × × − × −
WITH EXCLUSIVE指定 × × × × − × −
FOR UPDATE句指定 × × × × − × −
上記以外 × × × × − × −
更新 × × × × − × −
追加 × × × × − × −
削除 × × × × − × −
LOCK文 SHARE指定 × × × × − × −
EXCLUSIVE指定 × × × × − × −
表削除 − − × × − × ×
インデクス 定義 − − × × − × ×
削除 − − × × − × ×
全行削除 × × × × − × ×
表定義変更 − − − × − × ×

(凡例)
−:排他が掛からない,又は該当しない(ページ排他は指定できない)ことを示します。
×:SQL実行時に排他が解除されないことを示します。

注※
インナレプリカ機能を使用している場合,インナレプリカ構成管理に排他が掛かります。更新可能なオンライン再編成を使用している場合,インナレプリカ構成管理又はレプリカグループ構成管理に排他が掛かります。

 

表3-21 CREATE TABLEにWITHOUT ROLLBACKオプションを指定した表の排他解除タイミング(インデクスが定義されている場合(2/2))

SQL文 資源
上位←   →下位
インデクス インデクス情報ファイル ページ 行 キー値 論理ファイル
検索 NOWAIT指定 − − − − − −
WITH SHARE指定 − − − × −※1 −
WITH EXCLUSIVE指定 − − − × −※1 −
FOR UPDATE句指定 − − − × −※1 −
上記以外 − − − × −※1 −
更新 − − − ○ −※2 −
追加 − − − ○ −※3 −
削除 − − − ○ −※3 −
LOCK文 SHARE指定 − − − − − −
EXCLUSIVE指定 − − − − − −
表削除 − − − − − −
インデクス 定義 − − − − − −
削除 − − − − − −
全行削除 − − − − − −
表定義変更 − − − − − −

(凡例)
−:排他が掛からない,又は該当しない(インデクス定義及びページ排他は指定できない)ことを示します。
○:SQL実行時に排他が解除されることを示します。
×:SQL実行時に排他が解除されないことを示します。

注※1
システム定義のpd_indexlock_modeオペランドがKEY(インデクス排他あり)の場合,処理対象のキー値を別のキー値に変更したときに排他が解除されます。

注※2
ユニークキーインデクスの場合,○となります。

注※3
システム定義のpd_indexlock_modeオペランドがKEY(インデクス排他あり)の場合,×となります。