SlideShare uma empresa Scribd logo
1 de 30
Baixar para ler offline
Oracle Database In Lock



    2012/10/19 株式会社コーソル 渡部亮太
Who am I?
     渡部 亮太(わたべ りょうた)
           book
                    「プロとしてのOracleアーキテクチャ入門」
                    「プロとしてのOracle運用管理入門」
           presentation
                    Oracle DBA & Developer Days 2010, 2011
                    Developers Summit 2009
                    Oracle OpenWorld Tokyo 2012 Unconference など
           Blog
                    コーソル DatabaseエンジニアのBlog http://co-sol.jp/techdb/

     株式会社コーソル
           「CO-Solutions=共に解決する」の理念のもと、Oracle技術
            に特化した事業を展開中
           社員数: 94名 (エンジニアのほぼ全員がOracle Master 所有)
Copyright (C) 2012 CO-Sol Inc. All Rights Reserved                      1
本日お伝えしたいこと
     Oracle Databaseには多数のロック機構が存在すること
     それぞれのロック機構の役割と、ロック機構により実現される
      同時実行制御に関するイメージ

     注意書き
           内部動作の情報が公開されていないなかで、渡部が推測した内
            容がふくまれるため、本情報は、各自の理解を助けるための参考
            にしてください
           (当り前ですが)本情報を、何らかのアクションの唯一の「根拠」とし
            て活用することは避けてください



Copyright (C) 2012 CO-Sol Inc. All Rights Reserved   2
RDBMSにおけるロック機構の必要性
     一般的なRDBMS(クライアント-サーバー型)では複数の
      処理が同時に実行される
     ロック機構により排他制御を行わないと、様々なよからぬこ
      とが起きる
           データの整合性が崩れる
           直列処理が並列実行されてしまう
           領域割り当てが重複してしまう
           管理構造が破壊される
           など




Copyright (C) 2012 CO-Sol Inc. All Rights Reserved   3
データの整合性が崩れる #1

                  Process                            Process
                  (or Session)                       (or Session)




Copyright (C) 2012 CO-Sol Inc. All Rights Reserved                  4
データの整合性が崩れる #2

              Process                                Process
              (or Session)                           (or Session)




Copyright (C) 2012 CO-Sol Inc. All Rights Reserved                  5
直列処理が並列実行されてしまう
                              OK



                                                     処理#1    処理#2



                              NG




                                                      処理#2




Copyright (C) 2012 CO-Sol Inc. All Rights Reserved                  6
領域割り当てが重複してしまう

                  Process                                Process
                  (or Session)                           (or Session)

        領域割り当て                                       領域割り当て
        要求                                           要求




Copyright (C) 2012 CO-Sol Inc. All Rights Reserved                      7
管理構造が破壊される

                                                     x       y       z

                                OK                                       NG




           x                       a                     z       x       y    z

                                                                         a



Copyright (C) 2012 CO-Sol Inc. All Rights Reserved                                8
Oracle Databaseのロック機構
     ロック機構                          説明
     エンキュー                          FIFO型で多数のロックモードを持つロック機構
                                    ユーザー型 : ユーザーの操作(DML実行、DBMS_LOCK実行など)に
                                    対応してエンキューが獲得、解放される
                                    システム型 : Oracleの内部動作に対応してエンキューが獲得、解放さ
                                    れる
     ライブラリキャッシュ いわゆるDDLロック。オブジェクトの定義変更に関わる排他制御に用いられ
     ロック        る
     ライブラリキャッシュ ライブラリキャッシュオブジェクトの実体であるメモリ領域(ヒープ)の排他制御
     ピン         に用いられる
     ラッチ                            仕組みが単純で低コスト。原則的に排他モードのみ。
                                    複数プロセスで共有されるメモリ領域の排他制御に用いられる
     Mutex                          ラッチよりもさらに低コスト。
                                    ライブラリキャッシュオブジェクトをより細かい粒度で保護できる
     行キャッシュロック                      共有プール内のディクショナリキャッシュの排他制御に用いられる


Copyright (C) 2012 CO-Sol Inc. All Rights Reserved                          9
互換性とロック獲得待機
             [例: 排他/共有モードを持つロックの互換性]
                                      要求
                                         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
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
エンキュー
     様々なリソースに関わる同時実行制御に使用される
           リソース毎に異なるタイプのエンキューが使用される
           タイプはアルファベット2文字で表現される
           例) TX = 行ロック, TM = 表ロック
     獲得待機時に発生する待機イベント
           "enq <タイプ> - <説明>"
                    例) TXエンキューの更新競合
                         → "enq: TX - row lock contention"
     多数のロックモードと複雑な互換性を持つ(本日は説明を省略)




Copyright (C) 2012 CO-Sol Inc. All Rights Reserved           12
エンキューの種類と分類
     エンキューの種類
           非常に多くの種類のエンキューが存在
           V$LOCK_TYPEから確認可能
           エンキューごとに保護する対象が異なる
     ユーザー操作に関わる観点から、以下の2つに分類
           ユーザー型
                     TXエンキュー=行ロック
                     TMエンキュー=表ロック
                     ULエンキュー=DBMS_LOCK
           システム型
                     TX, TM, UL以外の全てのエンキュー
                     CFエンキュー=制御ファイルへのアクセス制御用ロック
                     など
Copyright (C) 2012 CO-Sol Inc. All Rights Reserved   13
TXエンキュー
     TXエンキューはユーザー型に分類されるエンキュー
           獲得: トランザクションの開始(≒行の更新)
           解放: トランザクションの終了(コミット or ロールバック)
     TXエンキュー獲得待機時に発生する待機イベント
           "enq: TX - row lock contention"
           など
     目的
           データ(=行)の整合性を保護する




Copyright (C) 2012 CO-Sol Inc. All Rights Reserved   14
[デモ] TXエンキュー獲得待機
     デモ
           同一行の更新によるTXエンキューの獲得+保持と獲得要求の競
            合
     シナリオ
           1.          行XをUPDATE(コミットしない)
            →           TXエンキューA 獲得+保持
           2.          別セッションで行XをUPDATE
            →           TXエンキューA 要求
            →           待機イベント"enq: TX - row lock contention"で待機




Copyright (C) 2012 CO-Sol Inc. All Rights Reserved                 15
CFエンキュー
     CFエンキューはシステム型に分類されるエンキュー
           獲得:制御ファイルへのアクセス開始
           解放:制御ファイルへのアクセス終了
           制御ファイルにはDatabaseの管理情報が記録される
           主にDatabaseの管理タスクが実行されるタイミングでCFエンキュ
            ーを獲得
                     例) ログスイッチ、チェックポイント
     目的
           制御ファイルに格納された管理情報の整合性保護




Copyright (C) 2012 CO-Sol Inc. All Rights Reserved   16
CFエンキューの競合とタイムアウト
     CFエンキュー獲得待機時に発生する待機イベント
           "enq: CF - contention"
     CFエンキュー獲得タイムアウト
           ORA-600[2103]が発生
     CFエンキューの競合が問題となる状況
           何らかの理由で制御ファイルへのI/Oがハング
           Oracle のBug

           論理的には・・・実際に多くのセッションが制御ファイルにアクセスし
            て場合も考えられなくもない



Copyright (C) 2012 CO-Sol Inc. All Rights Reserved   17
[デモ] CFエンキュー獲得待機
     デモ
           制御ファイルI/Oの遅延を疑似
     シナリオ
           1.          gdbでブレークポイントを設定
           2.          ログスイッチ実行 → CFエンキュー獲得+保持
           3.          チェックポイント実行
            →           CFエンキュー要求
            →           待機イベント"enq: CF - contention"で待機




Copyright (C) 2012 CO-Sol Inc. All Rights Reserved        18
ライブラリキャッシュロック
     ライブラリキャッシュロックはオブジェクト定義変更に関わるロッ
      ク
           排他モードで獲得:オブジェクトの定義変更
           共有モードで獲得:オブジェクトの定義参照
     良くある誤解
           TMエンキュー(表ロック)とライブラリキャッシュロックを混同


     獲得待機時に発生する待機イベント
           " library cache lock"




Copyright (C) 2012 CO-Sol Inc. All Rights Reserved   19
ライブラリキャッシュロックの保護対象
   Library Cache
         hash bucket                                 object handle




                                                        object handle
                                                                        heap 0   heap n

                                                      library
                                                                                          ・・・
                                                      cache
                                                      lock


Copyright (C) 2012 CO-Sol Inc. All Rights Reserved                                              20
[デモ]ライブラリキャッシュロック
     DDL実行でライブラリキャッシュロックを排他モードで獲得す
      る
     デモシナリオ
           1.          表にデフォルト値を含む列を追加
            →           表のライブラリキャッシュロックを排他モードで獲得+保持
           2.          表を参照するSQLを実行
            →           表のライブラリキャッシュロックを共有モードで要求
            →           待機イベント"library cache lock"で待機




Copyright (C) 2012 CO-Sol Inc. All Rights Reserved      21
ライブラリキャッシュピン
     ライブラリキャッシュピンはオブジェクト定義+そのものに関わ
      るロック
           排他モードで獲得:オブジェクトの変更
           共有モードで獲得:オブジェクトの参照
     獲得待機時に発生する待機イベント
           'library cache pin'待機イベント
     ライブラリキャッシュロックとライブラリピン
           両者の関係性はあまり明確にされていない
           一般的にロックを獲得した後、ピンを獲得or開放する




Copyright (C) 2012 CO-Sol Inc. All Rights Reserved   22
ライブラリキャッシュピンの保護対象
   Library Cache
         hach bucket                                 object handle




                                                        object handle
                                                                        heap 0   heap n


                                                                                            ・・・

                                                                                          library cache pin

Copyright (C) 2012 CO-Sol Inc. All Rights Reserved                                                            23
[デモ]ライブラリキャッシュピン
     ライブラリキャッシュピンはDDL実行で排他モードで獲得され
      る
     デモシナリオ
           1.          処理に長時間要するパッケージのプロシージャを実行
            →           パッケージのライブラリキャッシュピンを共有モードで獲得+保持
           2.          パッケージをコンパイル
            →           パッケージのライブラリキャッシュロックを排他モードで獲得
            →           パッケージのライブラリキャッシュピンを排他モードで要求
            →           待機イベント"library cache pin"で待機




Copyright (C) 2012 CO-Sol Inc. All Rights Reserved   24
ラッチ
     SGA内に存在する共有メモリ領域の排他制御に使用され
      る
           獲得:共有メモリ領域(群) へのアクセス開始
           解放:共有メモリ領域(群)へのアクセス終了
     共有メモリ領域へのアクセス
           メモリ領域(データ)の更新、新規領域割り当て、管理構造(メタデ
            ータ)の更新など
     基本的に獲得→解放は極めて短時間
           一般にマイクロ秒(~ミリ秒)レベル
     ラッチ獲得待機で発生する待機イベント
           'latch: <ラッチ名>' (10.1-)
           'latch free'
Copyright (C) 2012 CO-Sol Inc. All Rights Reserved   25
ラッチ一覧
     ラッチ関連V$ビュー
           V$LATCH
           V$LATCHNAME
           V$LATCH_PARENT
           V$LATCH_CHILDREN




Copyright (C) 2012 CO-Sol Inc. All Rights Reserved   26
shared poolラッチ
     共有プールにおけるメモリ領域(=チャンク)の割り当てに関
      わる同時実行制御に使用される
           同じメモリ領域を誤って別の用途に割り当てないように
           空き領域確保にともなう各種管理構造のメンテナンスがバッティン
            グしないように




Copyright (C) 2012 CO-Sol Inc. All Rights Reserved   27
共有プールと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
[デモ]shared poolラッチ
     デモシナリオ
           1. V$LATCH_CHILDRENからshared poolラッチのアドレス
            を確認
           2. oradebugでshared poolラッチを獲得
           3. SQLを実行
            → ハードパース発生
            → チャンク確保要求
            → shared poolラッチ要求
            → 待機イベント"latch: shared pool" 発生




Copyright (C) 2012 CO-Sol Inc. All Rights Reserved     29

Mais conteúdo relacionado

Mais procurados

[Oracle DBA & Developer Day 2012] 高可用性システムに適した管理性と性能を向上させるASM と RMAN の魅力
[Oracle DBA & Developer Day 2012] 高可用性システムに適した管理性と性能を向上させるASM と RMAN の魅力[Oracle DBA & Developer Day 2012] 高可用性システムに適した管理性と性能を向上させるASM と RMAN の魅力
[Oracle DBA & Developer Day 2012] 高可用性システムに適した管理性と性能を向上させるASM と RMAN の魅力
オラクルエンジニア通信
 

Mais procurados (20)

しばちょう先生による特別講義! RMANバックアップの運用と高速化チューニング
しばちょう先生による特別講義! RMANバックアップの運用と高速化チューニングしばちょう先生による特別講義! RMANバックアップの運用と高速化チューニング
しばちょう先生による特別講義! RMANバックアップの運用と高速化チューニング
 
Oracle GoldenGate FAQ
Oracle GoldenGate FAQOracle GoldenGate FAQ
Oracle GoldenGate FAQ
 
OCI GoldenGate Overview 2021年4月版
OCI GoldenGate Overview 2021年4月版OCI GoldenGate Overview 2021年4月版
OCI GoldenGate Overview 2021年4月版
 
Oracle GoldenGateでの資料採取(トラブル時に採取すべき資料)
Oracle GoldenGateでの資料採取(トラブル時に採取すべき資料)Oracle GoldenGateでの資料採取(トラブル時に採取すべき資料)
Oracle GoldenGateでの資料採取(トラブル時に採取すべき資料)
 
[Oracle DBA & Developer Day 2014] しばちょう先生による特別講義! RMANの運用と高速化チューニング
[Oracle DBA & Developer Day 2014] しばちょう先生による特別講義! RMANの運用と高速化チューニング[Oracle DBA & Developer Day 2014] しばちょう先生による特別講義! RMANの運用と高速化チューニング
[Oracle DBA & Developer Day 2014] しばちょう先生による特別講義! RMANの運用と高速化チューニング
 
[Oracle DBA & Developer Day 2012] 高可用性システムに適した管理性と性能を向上させるASM と RMAN の魅力
[Oracle DBA & Developer Day 2012] 高可用性システムに適した管理性と性能を向上させるASM と RMAN の魅力[Oracle DBA & Developer Day 2012] 高可用性システムに適した管理性と性能を向上させるASM と RMAN の魅力
[Oracle DBA & Developer Day 2012] 高可用性システムに適した管理性と性能を向上させるASM と RMAN の魅力
 
Oracle常駐接続プーリング(DRCP)を導入した話
Oracle常駐接続プーリング(DRCP)を導入した話Oracle常駐接続プーリング(DRCP)を導入した話
Oracle常駐接続プーリング(DRCP)を導入した話
 
GoldenGateテクニカルセミナー3「Oracle GoldenGate Technical Deep Dive」(2016/5/11)
GoldenGateテクニカルセミナー3「Oracle GoldenGate Technical Deep Dive」(2016/5/11)GoldenGateテクニカルセミナー3「Oracle GoldenGate Technical Deep Dive」(2016/5/11)
GoldenGateテクニカルセミナー3「Oracle GoldenGate Technical Deep Dive」(2016/5/11)
 
Oracle GoldenGate Veridata概要
Oracle GoldenGate Veridata概要Oracle GoldenGate Veridata概要
Oracle GoldenGate Veridata概要
 
Zero Data Loss Recovery Applianceによるデータベース保護のアーキテクチャ
Zero Data Loss Recovery Applianceによるデータベース保護のアーキテクチャZero Data Loss Recovery Applianceによるデータベース保護のアーキテクチャ
Zero Data Loss Recovery Applianceによるデータベース保護のアーキテクチャ
 
バックアップ時の問題から学んだDBエンジニアに必要なスキルとは
バックアップ時の問題から学んだDBエンジニアに必要なスキルとはバックアップ時の問題から学んだDBエンジニアに必要なスキルとは
バックアップ時の問題から学んだDBエンジニアに必要なスキルとは
 
Oracle Database Vaultのご紹介
Oracle Database Vaultのご紹介Oracle Database Vaultのご紹介
Oracle Database Vaultのご紹介
 
Oracle Data Masking and Subsettingのご紹介
Oracle Data Masking and Subsettingのご紹介Oracle Data Masking and Subsettingのご紹介
Oracle Data Masking and Subsettingのご紹介
 
iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方
 
Oracle運用Tips大放出! ~ RAC環境のRMANのパラレル化を極める 編 ~ @2016-02-23 JPOUG
Oracle運用Tips大放出! ~ RAC環境のRMANのパラレル化を極める 編 ~ @2016-02-23 JPOUG Oracle運用Tips大放出! ~ RAC環境のRMANのパラレル化を極める 編 ~ @2016-02-23 JPOUG
Oracle運用Tips大放出! ~ RAC環境のRMANのパラレル化を極める 編 ~ @2016-02-23 JPOUG
 
Zero Data Loss Recovery Appliance 設定手順例
Zero Data Loss Recovery Appliance 設定手順例Zero Data Loss Recovery Appliance 設定手順例
Zero Data Loss Recovery Appliance 設定手順例
 
Oracle Gen 2 Exadata Cloud@Customer:サービス概要のご紹介 [2021年7月版]
Oracle Gen 2 Exadata Cloud@Customer:サービス概要のご紹介 [2021年7月版]Oracle Gen 2 Exadata Cloud@Customer:サービス概要のご紹介 [2021年7月版]
Oracle Gen 2 Exadata Cloud@Customer:サービス概要のご紹介 [2021年7月版]
 
Oracle GoldenGate 19c を使用した 簡単データベース移行ガイド_v1.0
Oracle GoldenGate 19c を使用した 簡単データベース移行ガイド_v1.0Oracle GoldenGate 19c を使用した 簡単データベース移行ガイド_v1.0
Oracle GoldenGate 19c を使用した 簡単データベース移行ガイド_v1.0
 
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
 
あなたのクラウドは大丈夫?NRI実務者が教えるセキュリティの傾向と対策 (Oracle Cloudウェビナーシリーズ: 2021年11月24日)
あなたのクラウドは大丈夫?NRI実務者が教えるセキュリティの傾向と対策 (Oracle Cloudウェビナーシリーズ: 2021年11月24日)あなたのクラウドは大丈夫?NRI実務者が教えるセキュリティの傾向と対策 (Oracle Cloudウェビナーシリーズ: 2021年11月24日)
あなたのクラウドは大丈夫?NRI実務者が教えるセキュリティの傾向と対策 (Oracle Cloudウェビナーシリーズ: 2021年11月24日)
 

Destaque

バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~
Ryota Watabe
 
Analyzing Oracle Database hang issues using various diagnostics.
Analyzing Oracle Database hang issues using various diagnostics.Analyzing Oracle Database hang issues using various diagnostics.
Analyzing Oracle Database hang issues using various diagnostics.
Ryota Watabe
 
全社情報共有サイトへの Alfresco Community 5 導入事例紹介 - 第27回Alfresco勉強会
全社情報共有サイトへのAlfresco Community 5 導入事例紹介 - 第27回Alfresco勉強会全社情報共有サイトへのAlfresco Community 5 導入事例紹介 - 第27回Alfresco勉強会
全社情報共有サイトへの Alfresco Community 5 導入事例紹介 - 第27回Alfresco勉強会
Ryota Watabe
 

Destaque (17)

バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~
 
プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009
プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009
プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009
 
Analyzing Oracle Database hang issues using various diagnostics.
Analyzing Oracle Database hang issues using various diagnostics.Analyzing Oracle Database hang issues using various diagnostics.
Analyzing Oracle Database hang issues using various diagnostics.
 
パフォーマンスタブ見れないんですけど!! 株式会社コーソル 河野 敏彦
パフォーマンスタブ見れないんですけど!! 株式会社コーソル 河野 敏彦パフォーマンスタブ見れないんですけど!! 株式会社コーソル 河野 敏彦
パフォーマンスタブ見れないんですけど!! 株式会社コーソル 河野 敏彦
 
Introduction of Oracle Database Architecture
Introduction of Oracle Database ArchitectureIntroduction of Oracle Database Architecture
Introduction of Oracle Database Architecture
 
Corruption And Revive - db tech showcase 2013 特濃JPOUG
Corruption And Revive - db tech showcase 2013 特濃JPOUGCorruption And Revive - db tech showcase 2013 特濃JPOUG
Corruption And Revive - db tech showcase 2013 特濃JPOUG
 
Oracle Database Cloud Service を使ってみよう! 株式会社コーソル 守田 典男
Oracle Database Cloud Service を使ってみよう! 株式会社コーソル 守田 典男Oracle Database Cloud Service を使ってみよう! 株式会社コーソル 守田 典男
Oracle Database Cloud Service を使ってみよう! 株式会社コーソル 守田 典男
 
SQL Developerって必要ですか? 株式会社コーソル 河野 敏彦
SQL Developerって必要ですか? 株式会社コーソル 河野 敏彦SQL Developerって必要ですか? 株式会社コーソル 河野 敏彦
SQL Developerって必要ですか? 株式会社コーソル 河野 敏彦
 
全社情報共有サイトへの Alfresco Community 5 導入事例紹介 - 第27回Alfresco勉強会
全社情報共有サイトへのAlfresco Community 5 導入事例紹介 - 第27回Alfresco勉強会全社情報共有サイトへのAlfresco Community 5 導入事例紹介 - 第27回Alfresco勉強会
全社情報共有サイトへの Alfresco Community 5 導入事例紹介 - 第27回Alfresco勉強会
 
OSS-DB Silver ポイント解説セミナー ~SQL編~ (PostgreSQL9.0)
OSS-DB Silver ポイント解説セミナー ~SQL編~ (PostgreSQL9.0)OSS-DB Silver ポイント解説セミナー ~SQL編~ (PostgreSQL9.0)
OSS-DB Silver ポイント解説セミナー ~SQL編~ (PostgreSQL9.0)
 
おじさん二人が語る OOW デビューのススメ! Oracle OpenWorld 2016参加報告 [検閲版] 株式会社コーソル 杉本 篤信, 河野 敏彦
おじさん二人が語る OOW デビューのススメ! Oracle OpenWorld 2016参加報告 [検閲版] 株式会社コーソル 杉本 篤信, 河野 敏彦 おじさん二人が語る OOW デビューのススメ! Oracle OpenWorld 2016参加報告 [検閲版] 株式会社コーソル 杉本 篤信, 河野 敏彦
おじさん二人が語る OOW デビューのススメ! Oracle OpenWorld 2016参加報告 [検閲版] 株式会社コーソル 杉本 篤信, 河野 敏彦
 
バックアップと障害復旧から考えるOracle Database, MySQL, PostgreSQLの違い - Database Lounge Tokyo #2
バックアップと障害復旧から考えるOracle Database, MySQL, PostgreSQLの違い - Database Lounge Tokyo #2バックアップと障害復旧から考えるOracle Database, MySQL, PostgreSQLの違い - Database Lounge Tokyo #2
バックアップと障害復旧から考えるOracle Database, MySQL, PostgreSQLの違い - Database Lounge Tokyo #2
 
Standard Edition 2でも使えるOracle Database 12c Release 2オススメ新機能
Standard Edition 2でも使えるOracle Database 12c Release 2オススメ新機能Standard Edition 2でも使えるOracle Database 12c Release 2オススメ新機能
Standard Edition 2でも使えるOracle Database 12c Release 2オススメ新機能
 
「スキルなし・実績なし」 32歳窓際エンジニアがシリコンバレーで働くようになるまで
「スキルなし・実績なし」 32歳窓際エンジニアがシリコンバレーで働くようになるまで「スキルなし・実績なし」 32歳窓際エンジニアがシリコンバレーで働くようになるまで
「スキルなし・実績なし」 32歳窓際エンジニアがシリコンバレーで働くようになるまで
 
Oracle SQL Developerを使い倒そう! 株式会社コーソル 守田 典男
Oracle SQL Developerを使い倒そう! 株式会社コーソル 守田 典男Oracle SQL Developerを使い倒そう! 株式会社コーソル 守田 典男
Oracle SQL Developerを使い倒そう! 株式会社コーソル 守田 典男
 
Oracle Databaseを用いて学ぶ RDBMSの基本 (抜粋版) - JPOUG Oracle Database入学式 2016
Oracle Databaseを用いて学ぶRDBMSの基本 (抜粋版) - JPOUG Oracle Database入学式 2016 Oracle Databaseを用いて学ぶRDBMSの基本 (抜粋版) - JPOUG Oracle Database入学式 2016
Oracle Databaseを用いて学ぶ RDBMSの基本 (抜粋版) - JPOUG Oracle Database入学式 2016
 
バックアップと障害復旧から考えるOracle Database, MySQL, PostgreSQLの違い
バックアップと障害復旧から考えるOracle Database, MySQL, PostgreSQLの違いバックアップと障害復旧から考えるOracle Database, MySQL, PostgreSQLの違い
バックアップと障害復旧から考えるOracle Database, MySQL, PostgreSQLの違い
 

Semelhante a Oracle Database In Lock

[INSIGHT OUT 2011] C22 RAC buffer sharing の仕組み(yamashita)
[INSIGHT OUT 2011] C22 RAC buffer sharing の仕組み(yamashita)[INSIGHT OUT 2011] C22 RAC buffer sharing の仕組み(yamashita)
[INSIGHT OUT 2011] C22 RAC buffer sharing の仕組み(yamashita)
Insight Technology, Inc.
 
COBOL技術者のためのJava勉強会
COBOL技術者のためのJava勉強会COBOL技術者のためのJava勉強会
COBOL技術者のためのJava勉強会
naka hide
 
C21 SQL Server のスレッド管理 by 古賀啓一郎
C21 SQL Server のスレッド管理 by 古賀啓一郎C21 SQL Server のスレッド管理 by 古賀啓一郎
C21 SQL Server のスレッド管理 by 古賀啓一郎
Insight Technology, Inc.
 
C16 45分でわかるPostgreSQLの仕組み by 山田努
C16 45分でわかるPostgreSQLの仕組み by 山田努C16 45分でわかるPostgreSQLの仕組み by 山田努
C16 45分でわかるPostgreSQLの仕組み by 山田努
Insight Technology, Inc.
 
Jvm reading-synchronization
Jvm reading-synchronizationJvm reading-synchronization
Jvm reading-synchronization
Minoru Nakamura
 

Semelhante a Oracle Database In Lock (20)

述語ロックの歴史 r2
述語ロックの歴史 r2述語ロックの歴史 r2
述語ロックの歴史 r2
 
C++ Transactional Memory言語拡張の紹介
C++ Transactional Memory言語拡張の紹介C++ Transactional Memory言語拡張の紹介
C++ Transactional Memory言語拡張の紹介
 
Javaでトランザクショナルメモリを使う
Javaでトランザクショナルメモリを使うJavaでトランザクショナルメモリを使う
Javaでトランザクショナルメモリを使う
 
[INSIGHT OUT 2011] C22 RAC buffer sharing の仕組み(yamashita)
[INSIGHT OUT 2011] C22 RAC buffer sharing の仕組み(yamashita)[INSIGHT OUT 2011] C22 RAC buffer sharing の仕組み(yamashita)
[INSIGHT OUT 2011] C22 RAC buffer sharing の仕組み(yamashita)
 
Datomic&datalog紹介
Datomic&datalog紹介Datomic&datalog紹介
Datomic&datalog紹介
 
#02-01 ZFS によるストレージ仮想化 (2012-04-20)
#02-01 ZFS によるストレージ仮想化 (2012-04-20)#02-01 ZFS によるストレージ仮想化 (2012-04-20)
#02-01 ZFS によるストレージ仮想化 (2012-04-20)
 
Orb dlt technical_overview(特許情報なし)
Orb dlt technical_overview(特許情報なし)Orb dlt technical_overview(特許情報なし)
Orb dlt technical_overview(特許情報なし)
 
COBOL技術者のためのJava勉強会
COBOL技術者のためのJava勉強会COBOL技術者のためのJava勉強会
COBOL技術者のためのJava勉強会
 
C21 SQL Server のスレッド管理 by 古賀啓一郎
C21 SQL Server のスレッド管理 by 古賀啓一郎C21 SQL Server のスレッド管理 by 古賀啓一郎
C21 SQL Server のスレッド管理 by 古賀啓一郎
 
並行実行制御の最適化手法
並行実行制御の最適化手法並行実行制御の最適化手法
並行実行制御の最適化手法
 
C16 45分でわかるPostgreSQLの仕組み by 山田努
C16 45分でわかるPostgreSQLの仕組み by 山田努C16 45分でわかるPostgreSQLの仕組み by 山田努
C16 45分でわかるPostgreSQLの仕組み by 山田努
 
Jvm reading-synchronization
Jvm reading-synchronizationJvm reading-synchronization
Jvm reading-synchronization
 
分散型台帳技術Orb DLTの紹介
分散型台帳技術Orb DLTの紹介分散型台帳技術Orb DLTの紹介
分散型台帳技術Orb DLTの紹介
 
Orb oracle
Orb oracleOrb oracle
Orb oracle
 
A critique of ansi sql isolation levels 解説公開用
A critique of ansi sql isolation levels 解説公開用A critique of ansi sql isolation levels 解説公開用
A critique of ansi sql isolation levels 解説公開用
 
CDH4.0.0のNameNode HAを触ってみて
CDH4.0.0のNameNode HAを触ってみてCDH4.0.0のNameNode HAを触ってみて
CDH4.0.0のNameNode HAを触ってみて
 
OSSラボ様講演 OpenStack最新情報セミナー 2014年6月
OSSラボ様講演 OpenStack最新情報セミナー 2014年6月OSSラボ様講演 OpenStack最新情報セミナー 2014年6月
OSSラボ様講演 OpenStack最新情報セミナー 2014年6月
 
[日本仮想化技術] 2014/6/5 OpenStack最新情報セミナー資料
[日本仮想化技術] 2014/6/5 OpenStack最新情報セミナー資料[日本仮想化技術] 2014/6/5 OpenStack最新情報セミナー資料
[日本仮想化技術] 2014/6/5 OpenStack最新情報セミナー資料
 
TEE (Trusted Execution Environment)は第二の仮想化技術になるか?
TEE (Trusted Execution Environment)は第二の仮想化技術になるか?TEE (Trusted Execution Environment)は第二の仮想化技術になるか?
TEE (Trusted Execution Environment)は第二の仮想化技術になるか?
 
CaitSith 新しいルールベースのカーネル内アクセス制御
CaitSith 新しいルールベースのカーネル内アクセス制御CaitSith 新しいルールベースのカーネル内アクセス制御
CaitSith 新しいルールベースのカーネル内アクセス制御
 

Último

Último (10)

新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 

Oracle Database In Lock

  • 1. Oracle Database In Lock 2012/10/19 株式会社コーソル 渡部亮太
  • 2. Who am I?  渡部 亮太(わたべ りょうた)  book  「プロとしてのOracleアーキテクチャ入門」  「プロとしてのOracle運用管理入門」  presentation  Oracle DBA & Developer Days 2010, 2011  Developers Summit 2009  Oracle OpenWorld Tokyo 2012 Unconference など  Blog  コーソル DatabaseエンジニアのBlog http://co-sol.jp/techdb/  株式会社コーソル  「CO-Solutions=共に解決する」の理念のもと、Oracle技術 に特化した事業を展開中  社員数: 94名 (エンジニアのほぼ全員がOracle Master 所有) Copyright (C) 2012 CO-Sol Inc. All Rights Reserved 1
  • 3. 本日お伝えしたいこと  Oracle Databaseには多数のロック機構が存在すること  それぞれのロック機構の役割と、ロック機構により実現される 同時実行制御に関するイメージ  注意書き  内部動作の情報が公開されていないなかで、渡部が推測した内 容がふくまれるため、本情報は、各自の理解を助けるための参考 にしてください  (当り前ですが)本情報を、何らかのアクションの唯一の「根拠」とし て活用することは避けてください Copyright (C) 2012 CO-Sol Inc. All Rights Reserved 2
  • 4. RDBMSにおけるロック機構の必要性  一般的なRDBMS(クライアント-サーバー型)では複数の 処理が同時に実行される  ロック機構により排他制御を行わないと、様々なよからぬこ とが起きる  データの整合性が崩れる  直列処理が並列実行されてしまう  領域割り当てが重複してしまう  管理構造が破壊される  など Copyright (C) 2012 CO-Sol Inc. All Rights Reserved 3
  • 5. データの整合性が崩れる #1 Process Process (or Session) (or Session) Copyright (C) 2012 CO-Sol Inc. All Rights Reserved 4
  • 6. データの整合性が崩れる #2 Process Process (or Session) (or Session) Copyright (C) 2012 CO-Sol Inc. All Rights Reserved 5
  • 7. 直列処理が並列実行されてしまう OK 処理#1 処理#2 NG 処理#2 Copyright (C) 2012 CO-Sol Inc. All Rights Reserved 6
  • 8. 領域割り当てが重複してしまう Process Process (or Session) (or Session) 領域割り当て 領域割り当て 要求 要求 Copyright (C) 2012 CO-Sol Inc. All Rights Reserved 7
  • 9. 管理構造が破壊される x y z OK NG x a z x y z a Copyright (C) 2012 CO-Sol Inc. All Rights Reserved 8
  • 10. Oracle Databaseのロック機構 ロック機構 説明 エンキュー FIFO型で多数のロックモードを持つロック機構 ユーザー型 : ユーザーの操作(DML実行、DBMS_LOCK実行など)に 対応してエンキューが獲得、解放される システム型 : Oracleの内部動作に対応してエンキューが獲得、解放さ れる ライブラリキャッシュ いわゆるDDLロック。オブジェクトの定義変更に関わる排他制御に用いられ ロック る ライブラリキャッシュ ライブラリキャッシュオブジェクトの実体であるメモリ領域(ヒープ)の排他制御 ピン に用いられる ラッチ 仕組みが単純で低コスト。原則的に排他モードのみ。 複数プロセスで共有されるメモリ領域の排他制御に用いられる Mutex ラッチよりもさらに低コスト。 ライブラリキャッシュオブジェクトをより細かい粒度で保護できる 行キャッシュロック 共有プール内のディクショナリキャッシュの排他制御に用いられる Copyright (C) 2012 CO-Sol Inc. All Rights Reserved 9
  • 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
  • 13. エンキュー  様々なリソースに関わる同時実行制御に使用される  リソース毎に異なるタイプのエンキューが使用される  タイプはアルファベット2文字で表現される  例) TX = 行ロック, TM = 表ロック  獲得待機時に発生する待機イベント  "enq <タイプ> - <説明>"  例) TXエンキューの更新競合 → "enq: TX - row lock contention"  多数のロックモードと複雑な互換性を持つ(本日は説明を省略) Copyright (C) 2012 CO-Sol Inc. All Rights Reserved 12
  • 14. エンキューの種類と分類  エンキューの種類  非常に多くの種類のエンキューが存在  V$LOCK_TYPEから確認可能  エンキューごとに保護する対象が異なる  ユーザー操作に関わる観点から、以下の2つに分類  ユーザー型  TXエンキュー=行ロック  TMエンキュー=表ロック  ULエンキュー=DBMS_LOCK  システム型  TX, TM, UL以外の全てのエンキュー  CFエンキュー=制御ファイルへのアクセス制御用ロック  など Copyright (C) 2012 CO-Sol Inc. All Rights Reserved 13
  • 15. TXエンキュー  TXエンキューはユーザー型に分類されるエンキュー  獲得: トランザクションの開始(≒行の更新)  解放: トランザクションの終了(コミット or ロールバック)  TXエンキュー獲得待機時に発生する待機イベント  "enq: TX - row lock contention"  など  目的  データ(=行)の整合性を保護する Copyright (C) 2012 CO-Sol Inc. All Rights Reserved 14
  • 16. [デモ] TXエンキュー獲得待機  デモ  同一行の更新によるTXエンキューの獲得+保持と獲得要求の競 合  シナリオ  1. 行XをUPDATE(コミットしない) → TXエンキューA 獲得+保持  2. 別セッションで行XをUPDATE → TXエンキューA 要求 → 待機イベント"enq: TX - row lock contention"で待機 Copyright (C) 2012 CO-Sol Inc. All Rights Reserved 15
  • 17. CFエンキュー  CFエンキューはシステム型に分類されるエンキュー  獲得:制御ファイルへのアクセス開始  解放:制御ファイルへのアクセス終了  制御ファイルにはDatabaseの管理情報が記録される  主にDatabaseの管理タスクが実行されるタイミングでCFエンキュ ーを獲得  例) ログスイッチ、チェックポイント  目的  制御ファイルに格納された管理情報の整合性保護 Copyright (C) 2012 CO-Sol Inc. All Rights Reserved 16
  • 18. CFエンキューの競合とタイムアウト  CFエンキュー獲得待機時に発生する待機イベント  "enq: CF - contention"  CFエンキュー獲得タイムアウト  ORA-600[2103]が発生  CFエンキューの競合が問題となる状況  何らかの理由で制御ファイルへのI/Oがハング  Oracle のBug  論理的には・・・実際に多くのセッションが制御ファイルにアクセスし て場合も考えられなくもない Copyright (C) 2012 CO-Sol Inc. All Rights Reserved 17
  • 19. [デモ] CFエンキュー獲得待機  デモ  制御ファイルI/Oの遅延を疑似  シナリオ  1. gdbでブレークポイントを設定  2. ログスイッチ実行 → CFエンキュー獲得+保持  3. チェックポイント実行 → CFエンキュー要求 → 待機イベント"enq: CF - contention"で待機 Copyright (C) 2012 CO-Sol Inc. All Rights Reserved 18
  • 20. ライブラリキャッシュロック  ライブラリキャッシュロックはオブジェクト定義変更に関わるロッ ク  排他モードで獲得:オブジェクトの定義変更  共有モードで獲得:オブジェクトの定義参照  良くある誤解  TMエンキュー(表ロック)とライブラリキャッシュロックを混同  獲得待機時に発生する待機イベント  " library cache lock" Copyright (C) 2012 CO-Sol Inc. All Rights Reserved 19
  • 21. ライブラリキャッシュロックの保護対象 Library Cache hash bucket object handle object handle heap 0 heap n library ・・・ cache lock Copyright (C) 2012 CO-Sol Inc. All Rights Reserved 20
  • 22. [デモ]ライブラリキャッシュロック  DDL実行でライブラリキャッシュロックを排他モードで獲得す る  デモシナリオ  1. 表にデフォルト値を含む列を追加 → 表のライブラリキャッシュロックを排他モードで獲得+保持  2. 表を参照するSQLを実行 → 表のライブラリキャッシュロックを共有モードで要求 → 待機イベント"library cache lock"で待機 Copyright (C) 2012 CO-Sol Inc. All Rights Reserved 21
  • 23. ライブラリキャッシュピン  ライブラリキャッシュピンはオブジェクト定義+そのものに関わ るロック  排他モードで獲得:オブジェクトの変更  共有モードで獲得:オブジェクトの参照  獲得待機時に発生する待機イベント  'library cache pin'待機イベント  ライブラリキャッシュロックとライブラリピン  両者の関係性はあまり明確にされていない  一般的にロックを獲得した後、ピンを獲得or開放する Copyright (C) 2012 CO-Sol Inc. All Rights Reserved 22
  • 24. ライブラリキャッシュピンの保護対象 Library Cache hach bucket object handle object handle heap 0 heap n ・・・ library cache pin Copyright (C) 2012 CO-Sol Inc. All Rights Reserved 23
  • 25. [デモ]ライブラリキャッシュピン  ライブラリキャッシュピンはDDL実行で排他モードで獲得され る  デモシナリオ  1. 処理に長時間要するパッケージのプロシージャを実行 → パッケージのライブラリキャッシュピンを共有モードで獲得+保持  2. パッケージをコンパイル → パッケージのライブラリキャッシュロックを排他モードで獲得 → パッケージのライブラリキャッシュピンを排他モードで要求 → 待機イベント"library cache pin"で待機 Copyright (C) 2012 CO-Sol Inc. All Rights Reserved 24
  • 26. ラッチ  SGA内に存在する共有メモリ領域の排他制御に使用され る  獲得:共有メモリ領域(群) へのアクセス開始  解放:共有メモリ領域(群)へのアクセス終了  共有メモリ領域へのアクセス  メモリ領域(データ)の更新、新規領域割り当て、管理構造(メタデ ータ)の更新など  基本的に獲得→解放は極めて短時間  一般にマイクロ秒(~ミリ秒)レベル  ラッチ獲得待機で発生する待機イベント  'latch: <ラッチ名>' (10.1-)  'latch free' Copyright (C) 2012 CO-Sol Inc. All Rights Reserved 25
  • 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
  • 30. [デモ]shared poolラッチ  デモシナリオ  1. V$LATCH_CHILDRENからshared poolラッチのアドレス を確認  2. oradebugでshared poolラッチを獲得  3. SQLを実行 → ハードパース発生 → チャンク確保要求 → shared poolラッチ要求 → 待機イベント"latch: shared pool" 発生 Copyright (C) 2012 CO-Sol Inc. All Rights Reserved 29