Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Jpoug 20120721

1,212 views

Published on

Published in: Technology
  • Be the first to comment

Jpoug 20120721

  1. 1. アンカンファレンス 新久保 浩二 1
  2. 2. いろんなデータベースでいろんな事を実験中 おら オラ Oracl e どっぷり検証生活 Oracl e ACE @kouji _s _0808 JPOUG Member本資料に使用されている社名、ロゴ、製品、サービス名およびブランドは、該当する各社の登録商標または商標です。本資料の一部あるいは全体について、許可なく複製および転載することを禁じます。 2
  3. 3. ● 今日のトピック● トランザクションロックの調査での永遠のテーマ● いろいろ ( あまり、決めてません ん ) 3
  4. 4. 皆さんご存知のトランザクション ( TX) エンキューの話ですちなみに TX エンキューにも沢山種類がありますよね。enq: TX – row l ock contenti on の mod e 6 とか mod e 4enq: TX – al l ocati on I TL entryenq: TX – i nd ex contenti onenq: TX – contenti onそこは、本日の趣旨ではないので、さくっとスルーします。 4
  5. 5. いろいろ、ありますが、今日は皆さんの大好物enq: TX – r ow l oc k c ont ent i onをベースに話を進めたいと思います。 5
  6. 6. 「おーい。何かアプリが尋常じゃなく遅いんですけど… 」… すったもんだあって …「どうも、このアプリの SQL がロック待ちしているようですね」「待たせているのは誰?」… 大人の会議後 …大人の KI LL SESSI ON  6
  7. 7. 1. 待たされているセッションは分かる2. 待たされている SQL 文も分かる3. 待たせているセッションも分かるだったら待たせている SQL 文の正体も知りたい。と思うのが人情* SQL 文が分からないとアプリケーションの改修が難しい場合もあるでも「できないんですよ」 7
  8. 8. そもそも、 r ow l oc k c ont ent i on って?Thanks Kyl e  8htt p: //d ocwi ki . e mbarcad e ro. com/DBOpt i mi ze r/en/Oracl e: Enqueues
  9. 9. Itl X id U ba F lag Lck S cn/ s c F0x01 0x0007.00f.00002098 0x00c021 0b .09b 1 .01 C --- 0 s cn 0x0000.066a72630x02 0x000a.001 .0000e 3b 6 0x00c002c3.1 c95.03 ---- 1 fs c 0x0000.00000000b d b a: 0x0041 5a09d 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: 1col 0: [ 2] c1 03e nd _ of_ b lock_ d u m p 9
  10. 10. ロックをかけた SQL は - I TL エントリを作って ( 既存トランザクションがない場合 ) - 行ヘッダーに、 I TL エントリを書いて追跡するには - I TL エントリから XI D を探して - その、 XI D で実行された SQL を探して < = この時点で無理 - さらに、依存オブジェクトとかで絞り込んでつまり、このトランザクション管理から考えて、ロックをかけた SQL を追跡することは不可能だと言える。 10
  11. 11. I TL にご興味がある場合は、以下をどうぞhttp: //www. i ns i ght- tec. com/mai l magazi ne/ora3/vol 1 43. html( 注意 )でも、ロックをかけている SQL 文を全部管理することは、とても無駄トランザクション管理という意味では、ロックをかけている SQL 文を管理する必要はないので、全く問題ではないですよ。要は、ワークアラウンドがあるか? 11
  12. 12. ● A から探る SH 絞り込む意味で見つかる可能性は高いですが、 1 00% とは 言えないですね。● A T から探る UDI これは、 A より見つかる可能性が高いですが、既存システム SH にロックの調査のために A T を仕掛けます。は許してくれな UDI い可能性が高い ( かもしれません )● LogM ner i Exact SQL ではないので、今回の意味合いから外れる 12
  13. 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 _ TEXTF 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 qWHERE 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
  14. 14. - 誰か、この永遠のテーマにチャレンジしてください ( なにか、もっとワークアラウンドある気がしてます )- で、良いアイデアがあれば、是非、教えてください ! ! 14
  15. 15.   ORA- 03113 15

×