ロック属性

データベース・マネージャーのロック機能には、いくつかの基本属性があります。

属性には以下のものが含まれます。
Mode
ロックの所有者に許可されるアクセスの種類、そしてロックの対象の並行ユーザーに許可されるアクセスの種類。 これは、しばしばロックの状態 と呼ばれます。
Object
ロックするリソース。 明示的にロックできるオブジェクトの唯一のタイプは表です。 データベース・マネージャーは、行、表スペースなど、他のタイプのリソースにもロックを設定します。 マルチディメンション・クラスタリング (MDC) 表や挿入時クラスタリング (ITC) 表にはブロック・ロックも設定でき、パーティション表にはデータ・パーティション・ロックを設定できます。 ロックされているオブジェクトは、ロックの細分性 を表します。
ロック・カウント
ロックが保持される時間の長さ。 照会が実行される分離レベルは、ロック・カウントに影響を与えます。

表 1 に、ロック・モードをリストし、それらの効果をリソースに対する制御の増加順に説明します。

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