2020.09.18
ロックの発生状況を確認する方法
1. 概要
紹介する手順は、以下のような場面で活用することが出来ます。
- ロックの待機待ち発生状況を確認したい
- アプリケーションの処理遅延がロック待機待ちか確認したい
MaxGauge for Oracleは、1秒間隔でSQL実行中のセッション情報を取得しています。
セッション情報には、ロック待機待ちセッションの情報も含めて取得します。
2. ロック待機待ちの発生状況を確認する
ロック待機待ちの発生状況を確認するには、[Performance Analyzer]画面の[推移分析][性能トレンド]で確認することが出来ます。
2.1. 調査方法
1. [PERFORMANCE ANALYZER]画面に遷移します
[Realtime Monitor]画面の右上部[PERFORMANCE ANALYZER]ボタンをクリックして[Performance Analyzer]画面を表示します。
2. [推移分析][性能トレンド]画面に遷移します
- [Performance Analyzer]の画面左メニューから[推移分析]をクリック
- 画面上段メニューの[性能トレンド]をクリックします
3. 調査対象の期間と対象インスタンスを指定します
- 調査対象のインスタンスをプルダウンメニューから選択します
- ロック待機待ち発生状況を確認したい期間を指定します
- [検索]ボタンをクリックします
4. 指定した期間のロック待機セッション数の状況を確認します
調査対象期間の稼働情報のグラフが表示されます。
表示された画面の「Lock Waiting Sessions (Count)」グラフがロック待機待ちが発生したセッション数のグラフになります。
グラフをドラック&ドロップして詳細を表示します
「Lock Waiting Sessions (Count)」グラフでロックの状況の詳細を確認したい時間帯をドラック&ドロップします
タイムスライスの窓が表示されるので「推移分析を行う」のチェックをONにして[OK]ボタンをクリックします
5. ロック待機待ちの詳細情報を確認します
タイムスライスで指定した時間の詳細情報を表示する画面に遷移します、「ロック待機セッション」のグラフや「ロックツリー」から
ロックの発生状況の詳細を確認します。
ロック待機セッション
性能トレンドのグラフ領域のタブから「ロック待機セッション」を選択します。
ロック待機待ちのセッション数のグラフが表示されます。
グラフの値が上昇している時間帯にロック待機が発生しています。値はロック待機したセッション数を示しています。
ロック待機の値が上昇している時間帯をクリックすると発生したロックの詳細が表示されます。
ロックツリー
ロックの状態がツリー形式で表示されます。
ツリーの一番上にロックのホルダーが表示され、待機しているウェイターのセッションがホルダー配下に表示されます。
各列の説明
ロックツリーで表示されるセッション情報の各列の説明
SID | セッションID |
---|---|
Instance Name | インスタンス名 |
Type Held | ロック・ホルダー・セッションのロック保持タイプ |
Mode Held | ロック・ホルダー・セッションのロックモード |
Type Request | ロック・ウェイター・セッションのロック保持タイプ |
Mode Request | ロック・ウェイター・セッションのロックモード |
Status | セッションのステータス |
SQL ID | Oracle SQL ID |
SQL Text | 実行していたSQL文 |
Prev SQL Text | 実行中のSQLの前に実行されていたSQL文 |
Elapsed Time (Sec) | SQLの実行時間(秒) |
Client Identifier | クライアント識別子 |
Program | ブログラム名 |
Module | モジュール名 DBMS_APPLICATION_INFO.SET_モジュールに設定した情報を表示します |
Action | アクション名 DBMS_APPLICATION_INFO.SET_ACTIONに設定した情報を表示します |
Schema | スキーマ名 |
Machine | マシン名 |
OS User | OSユーザー名 |
LogonTime | セッションが接続を開始した時間 |
Serial | セッションのシリアル番号 |