4. 皆さんご存知のトランザクション ( TX) エンキューの話です
ちなみに TX エンキューにも沢山種類がありますよね。
enq: TX – row l ock contenti on の mod e 6 とか mod e 4
enq: TX – al l ocati on I TL entry
enq: TX – i nd ex contenti on
enq: TX – contenti on
そこは、本日の趣旨ではないので、さくっとスルーします。
4
8. そもそも、 r ow l oc k c ont ent i on って?
Thanks Kyl e 8
htt p: //d ocwi ki . e mbarcad e ro. com/DBOpt i mi ze r/en/Oracl e: Enqueues
9. Itl X id U ba F lag Lck S cn/ s c
F
0x01 0x0007.00f.00002098 0x00c021 0b .09b 1 .01 C --- 0 s cn 0x0000.066a7263
0x02 0x000a.001 .0000e 3b 6 0x00c002c3.1 c95.03 ---- 1 fs c 0x0000.00000000
b d b a: 0x0041 5a09
d ata_ b lock_ d u m p ,d ata h e ad e r at 0x2b 38d 7c86a5c
===============
… (略)…
b lock_ row_ d u m p :
tab 0, row 0, @ 0x1 f9a
UNDO Segment へ UNDO Bl ock へ
tl: 6 fb : --H -F L-- lb: 0x2 cc: 1
col 0: [ 2] c1 03
e nd _ of_ b lock_ d u m p
9
10. ロックをかけた SQL は
- I TL エントリを作って ( 既存トランザクションがない場合 )
- 行ヘッダーに、 I TL エントリを書いて
追跡するには
- I TL エントリから XI D を探して
- その、 XI D で実行された SQL を探して < = この時点で無理
- さらに、依存オブジェクトとかで絞り込んで
つまり、このトランザクション管理から考えて、ロックをかけた SQL を
追跡することは不可能だと言える。
10
11. I TL にご興味がある場合は、以下をどうぞ
http: //www. i ns i ght- tec. com/mai l magazi ne/ora3/vol 1 43. html
( 注意 )
でも、ロックをかけている SQL 文を全部管理することは、とても無駄
トランザクション管理という意味では、ロックをかけている SQL 文を
管理する必要はないので、全く問題ではないですよ。
要は、ワークアラウンドがあるか?
11
12. ● A から探る
SH
絞り込む意味で見つかる可能性は高いですが、 1 00% とは
言えないですね。
● A T から探る
UDI
これは、 A より見つかる可能性が高いですが、既存システム
SH
にロックの調査のために A T を仕掛けます。は許してくれな
UDI
い可能性が高い ( かもしれません )
● LogM ner
i
Exact SQL ではないので、今回の意味合いから外れる
12
13. S EL ECT
s e . SI D,
d b aO. OBJECT_ NAME,
s e . MACHI NE,
s e . TERMI NAL ,
s e . OS US ER,
s e . PROGRAM,
vl . TYPE,
vl . L MOD E,
vl . REQUES T,
vl . CTI ME,
vl . BL OCK,
s q . S QL _ TEXT
F ROM v$ L OCKED _ OBJECT vL OCK,
D BA_ OBJECTS d b aO,
v$ S ES S I ON s e ,
v$ l o c k vl ,
v$ s q l s q
WHERE vL OCK. OBJECT_ I D = d b aO. OBJECT_ I D ( + )
AND vL OCK. S ES S I ON_ I D = s e . S I D ( + )
AND s e . S I D = vl . S I D
AND s e . TYPE = ' TX'
AND d e c o d e ( s e . S QL _ AD D RES S , ' 00' , s e . PREV_ S QL _ AD D R, s e . S QL _ AD D RES S ) = s q . AD D RES S ( + )
ORD ER BY s e . S I D , d b aO. OBJECT_ NAME;
13