11. 互換性とロック獲得待機
[例: 排他/共有モードを持つロックの互換性]
要求
S X
保持 なし ○ ○ ロック機構により、ロックモードの種類と
S ○ × 互換性定義が異なることに注意
例) エンキューには7つのロックモードがある
X × ×
10
#1 ロック #2
対象
待機イベントX REQ HOLD
mode=S mode=X
#1 ロック #2
対象
HOLD HOLD
mode=S mode=S
Copyright (C) 2012 CO-Sol Inc. All Rights Reserved
12. Oracle DBでのロック状態確認方法
機能 説明 例)TXエンキューの場合
V$ビュー ロック種別に応じたV$ビューで V$LOCK、
ロック状態、ロック関連統計情 V$TRANSACTION な
ど
報を確認できる
待機イベント ロック獲得待機発生時、待機 'enq: TX - row lock
セッションでロック種別、ロック contention'
など
の使用形態に応じた待機イベ
ントが発生し、V$SESSION
やSQLトレースから確認でき
る
各種診断機 トレースファイルにdumpした system state, hang
能 動作詳細情報から、ロックに analyze
関わる情報を確認できる
Copyright (C) 2012 CO-Sol Inc. All Rights Reserved
27. ラッチ一覧
ラッチ関連V$ビュー
V$LATCH
V$LATCHNAME
V$LATCH_PARENT
V$LATCH_CHILDREN
Copyright (C) 2012 CO-Sol Inc. All Rights Reserved 26
28. shared poolラッチ
共有プールにおけるメモリ領域(=チャンク)の割り当てに関
わる同時実行制御に使用される
同じメモリ領域を誤って別の用途に割り当てないように
空き領域確保にともなう各種管理構造のメンテナンスがバッティン
グしないように
Copyright (C) 2012 CO-Sol Inc. All Rights Reserved 27
29. 共有プールとshared poolラッチ
説明の便宜上、非常に単純化して書いています
free list bucket subpool
size=xx
size=yy
shared pool
latch size=zz
size=xx
size=yy
shared pool
latch size=zz
・
・
・
free area
Copyright (C) 2012 CO-Sol Inc. All Rights Reserved 28