| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

DB2 ロック属性

提供: MyMemoWiki
2020年2月15日 (土) 08:18時点におけるPiroto (トーク | 投稿記録)による版
ナビゲーションに移動 検索に移動

DB2 ロック属性

DB2Database

モード(ロックの状態)

ロックの所有者に許可されるアクセスの種類、そしてロックの対象の並行ユーザーに許可されるアクセスの種類。

オブジェクト

ロックするリソース。明示的にロックできるオブジェクトの唯一のタイプは表。 データベース・マネージャーでは、行、表、表スペースなど、他のタイプのリソースにもロックをかけます。

期間

照会が実行される分離レベルは、ロック期間に影響

ロック・モード 適用できるオブジェクト・タイプ 説明
IN (意図なし) 表スペース、ブロック、表 ロックの所有者は、非コミット・データを含め、オブジェクト内のすべてのデータを読み取ることができますが、更新はできません。 同時に実行される他のアプリケーションは、その表を読み取ったり更新したりできます。
IS (意図共用) 表スペース、ブロック、表 ロック所有者は、ロックされている表のデータを読み取ることはできますが、更新はできません。 他のアプリケーションは、その表を読み取ったり更新したりできます。
NS (ネクスト・キー共用) ロック所有者とすべての並行アプリケーションは、ロックされた行を読み取ることはできますが、更新はできません。このロックは、S ロックの代わりに、表の行に対して獲得されます。この場合、アプリケーションの分離レベルは、RS か CS のいずれかです。 NS ロック・モードは、ネクスト・キー・ロッキングには使用されません。このモードは、これらのスキャンにおける次のキー・ロッキングの影響を最小化するために CS および RS スキャンの際に S モードの代わりに使用されます。
S (共用) 行、ブロック、表 ロック所有者とすべての並行アプリケーションは、ロックされたデータを読み取ることはできますが、更新はできません。
IX (意図排他) 表スペース、ブロック、表 ロック所有者と同時に実行されるアプリケーションとは、データを読み取ったり更新したりできます。同時に実行される他のアプリケーションは、その表を読み取ったり更新したりできます。
SIX (意図排他共用) 表、ブロック ロック所有者は、データを読み取ったり更新したりできます。 同時に実行される他のアプリケーションは、その表を読み取ることができます。
U (更新) 行、ブロック、表 ロック所有者は、データを更新できます。他の作業単位はロックされたオブジェクトのデータを読み取ることはできますが、更新は行えません。
NW (ネクスト・キー弱排他) 行が索引に挿入されるとき、NW ロックが次の行に獲得されます。タイプ 2 索引の場合、次の行が現在 RR スキャンによってロックされている場合にのみ、これが発生します。ロック所有者は、ロックされた行の読み取りはできますが更新はできません。このロック・モードは、W および NS ロックと互換性があることを除けば、X ロックと類似した働きをします。
X (排他) 行、ブロック、表、バッファー・プール 1 ロック所有者は、ロックされたオブジェクトのデータを読み取ったり更新したりできます。 1 ロックされたオブジェクトにアクセスできるのは、非コミット読み取りアプリケーションだけです。
W (弱排他) このロックは、タイプ 2 索引が定義されていない表に行を挿入するときに、その行に対して獲得されます。ロック所有者は、ロックされた行を変更することができます。重複値が見つかるときに重複値がコミットされたかどうかを判別するために、ユニーク索引に挿入中にもこのロックが使用されます。このロックは、NW ロックと互換性があることを除けば、X ロックと類似した働きをします。 ロックされた行にアクセスできるのは、非コミット読み取りアプリケーションだけです。
Z (超排他) 表スペース、表 このロックが表上で獲得されるのは、表が変更またはドロップされるとき、表の索引が作成またはドロップされるとき、あるいは表の一部のタイプが再編成されるときなど、特定の状況においてです。同時に実行される他のアプリケーションは、その表を読み取ったり更新したりできません。

ロック・タイプの互換性

特定の状態で別のプロセスが同じリソースにロックを保持または要求しているときに、ロック要求が認可される状態に関する情報を表示します。 いいえ は、非互換ロックが他のプロセスによってすべて解除されるまで、要求側が待機しなければならないことを示します。要求側がロック待機中に、タイムアウトになることがあるので注意してください。 はい は、ロックが認可されることを示します 保持されているリソースの状態

要求されている状態 なし IN IS NS S IX SIX U X Z NW W
なし はい はい はい はい はい はい はい はい はい はい はい はい
IN はい はい はい はい はい はい はい はい はい いいえ はい はい
IS はい はい はい はい はい はい はい はい いいえ いいえ いいえ いいえ
NS はい はい はい はい はい いいえ いいえ はい いいえ いいえ はい いいえ
S はい はい はい はい はい いいえ いいえ はい いいえ いいえ いいえ いいえ
IX はい はい はい いいえ いいえ はい いいえ いいえ いいえ いいえ いいえ いいえ
SIX はい はい はい いいえ いいえ いいえ いいえ いいえ いいえ いいえ いいえ いいえ
U はい はい はい はい はい いいえ いいえ いいえ いいえ いいえ いいえ いいえ
X はい はい いいえ いいえ いいえ いいえ いいえ いいえ いいえ いいえ いいえ いいえ
Z はい いいえ いいえ いいえ いいえ いいえ いいえ いいえ いいえ いいえ いいえ いいえ
NW はい はい いいえ はい いいえ いいえ いいえ いいえ いいえ いいえ いいえ はい
W はい はい いいえ いいえ いいえ いいえ いいえ いいえ いいえ いいえ はい いいえ


アプリケーション・プロセスのロックとタイプ

アプリケーション処理 ロック 内容
読み取り専用 共用ロック (S、NS、または IS) のみ 取り専用である SELECT、明示的な FOR READ ONLY含む SELECT、SQL コンパイラーが読み取り専用と見なす SELECT
変更を意図 共用および更新ロック (行では S、U、X、 7 ブロックでは IX、U、X、S、表では IX、U、X) FOR UPDATE、USE AND KEEP UPDATE LOCKS、USE AND KEEP EXCLUSIVE LOCKS を使用するSELECT、暗黙に変更が意図されたとして SQL コンパイラーに解釈される SELECT
変更 排他ロック (X または IX) UPDATE、INSERT、および DELETE
カーソル制御 排他ロック (X または IX) UPDATE WHERE CURRENT OF および DELETE WHERE CURRENT OF