ロックツリー
ホーム画面 > プロジェクト選択 > 分析 > ロックツリー
一日の間に発生したロック(lock)の推移を分析するツールです。この機能によってロックを発生させたセッション(lock holder)と待機しているセッション(lock waiter)に対するツリー構造を視覚的に確認できます。特定時点で発生したロック情報のholderとwaiter間の関係を分析できます。WhaTapのロックツリー機能により、データベース管理者はロック関連の問題を迅速に識別して解決でき、データベースの性能を最適化できます。
主な機能は次のとおりです。
-
ロック推移分析: 設定した照会期間に発生したロックの推移を時間とともに追跡し、グラフで表示します。これにより、ロックがどのように発生し、解消されるかを視覚的に把握できます。
-
ロックHolderおよびWaiter確認: 各ロックに対するholderとwaiterをツリー構造で確認できます。これにより、特定のロックが発生した状況でロックを発生させたセッションと待機するセッションとの関係を把握できます。
-
セッション間の関係分析: ロックを発生させたセッションと待機するセッションとの関係を分析し、クエリー実行およびトランザクション処理過程で発生したロックの原因を識別できます。
- 時間別ロックトレンドの視覚化: 1-Min Lock TrendsとLock Wait Sessions機能により、ロック発生データを時間単位で分析できます。
基本的な使い方

-
画面上段の時間で照会する日付を選択して時間を設定します。
-
モニタリングするインスタンスを選択します。
選択したインスタンスで設定した時間中に発生したロック(Lock) 状況を確認できます。
もし設定された時間の間ロック(Lock)が発生した場合は、Lock Wait Sessionsグラフと下段のテーブルで特定の時間帯にロックが集中するのか、または特定のセッションが継続的にロックを誘発するのかなどを分析できます。
- チャートで3時間以内にドラッグして、5秒単位のデータを照会できます。ただし、5秒単位のデータは、最近1か月の範囲に限って照会できます。1か月前のデータは、5分要約データでしか閲覧できません。例えば、40 日前のロックツリーデータをドラッグ(ドリルダウン)すると、5分要約データは照会できますが、5秒データは照会できません。
Lock Wait Sessions
Lock Wait Sessionsは、ロック待機セッションの情報を分析できる機能です。照会期間によってロック待機セッションデータを3時間以上照会すると5分間隔で、3時間未満照会すると5秒間隔で提供します。また、チャートをドラッグして時間範囲を流動的に調整できます。
1-Min Lock Trends
Lock Wait Sessionsで特定の時間帯をクリックすると、その時間基準で15分前から15分後までの計30分間のロック発生状況を可視化して表示します。これにより、30分単位でロック発生トレンドを効果的に分析できます。
Total Locksは、その時間帯に発生したロックの合計個数を意味します。
時間照会
Lock Wait Sessionsでクリックした時間に発生した最大ロック数を基準に1-Min Lock TrendsとLock Treeテーブルの時間が設定されます。これにより、ロックが最も多く発生した区間を把握できます。

Lock Wait Sessionsはそのままにして1-Min Lock Trendsチャートで他の時間帯のバーをクリックした場合、該当する分の最大ロック数を持つ秒の時点でLock Treeテーブルの時間範囲が同期されます。これにより、時間帯を変更する時にLock Treeテーブルに反映された情報を確認できます。

-
3時間以上照会した場合 (5分単位のデータ使用)
照会時点から5分の区間でバーの色が濃く表示されます。
07:15:00時点をクリックした場合、07:15:00~07:20:00区間バーのチャートの色が濃く表示されます。
-
3時間未満照会した場合 (5秒単位のデータ使用)
短い時間間隔で発生したロック状況を分析する時に役立ちます。

カラム情報ガイド
各セッションの詳細については、次のカラムを通じて提供します。
| 項目 | 説明 |
|---|---|
event | 待機イベントの名前です。 |
holder type | ロックを所有しているセッションのタイプです。 |
id1 | 1番目の識別子の値です。 |
id2 | 2番目の識別子の値です。 |
lock mode | セッションでリクエストまたは所有するロックモードです。 |
lock request | セッションでリクエストされたロックの状態です。 |
module | 実行中のモジュールの名前です。 |
pid | データベースプロセスのPIDです。 |
prev_sql_id | 以前に実行されたSQL文の固有IDです。 |
prev_sql_param | 以前に実行されたSQLのパラメータです。 |
prev_sql_text | 以前に実行されたSQL文のテキストです。 |
prog_name | セッションを実行するプログラムの名前です。 |
serial# | 同じセッションのリトライを区分する一連番号です。 |
sid | セッションを固有に識別するセッションIDです。 |
sql_et | SQL実行時間です。 |
sql_id | 実行中のSQL文の固有IDです。 |
sql_param | SQL実行に使用されたパラメータです。 |
sql_text | 実行中のSQL文のテキストです。 |
status | セッションの状態です。 |
username | セッションを実行するユーザーの名前です。 |
waiter type | ロックを待っているセッションのタイプです。 |
WhaTapは、クライアントに関する情報をデフォルトで保存します。