本文へスキップ

ロックツリー

ホーム画面 > プロジェクト選択 > 分析 > ロックツリー

一日の間に発生したロック(lock)の推移を分析するツールです。この機能によってロックを発生させたセッション(lock holder)と待機しているセッション(lock waiter)に対するツリー構造を視覚的に確認できます。特定時点で発生したロック情報のholderとwaiter間の関係を分析できます。WhaTapのロックツリー機能により、データベース管理者はロック関連の問題を迅速に識別して解決でき、データベースの性能を最適化できます。

主な機能は次のとおりです。

  • ロック推移分析: 設定した照会期間に発生したロックの推移を時間とともに追跡し、グラフで表示します。これにより、ロックがどのように発生し、解消されるかを視覚的に把握できます。

  • ロックHolderおよびWaiter確認: 各ロックに対するholderとwaiterをツリー構造で確認できます。これにより、特定のロックが発生した状況でロックを発生させたセッションと待機するセッションとの関係を把握できます。

  • セッション間の関係分析: ロックを発生させたセッションと待機するセッションとの関係を分析し、クエリー実行およびトランザクション処理過程で発生したロックの原因を識別できます。

  • 時間別ロックトレンドの視覚化: 1-Min Lock TrendsLock Wait Sessions機能により、ロック発生データを時間単位で分析できます。

基本的な使い方

Lock tree

目的の数字1日付と時間を設定し、数字2の一覧からインスタンスを選択します。設定した時間にロックが発生した場合は、lock wait sessionsと画面下のテーブルに表示されているデータを表示します。

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 TrendsLock Treeテーブルの時間が設定されます。これにより、ロックが最も多く発生した区間を把握できます。

時間照会1

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

時間照会2

  • 3時間以上照会した場合 (5分単位のデータ使用)

    照会時点から5分の区間でバーの色が濃く表示されます。

    07:15:00時点をクリックした場合、07:15:00~07:20:00区間バーのチャートの色が濃く表示されます。

    5分パック照会

  • 3時間未満照会した場合 (5秒単位のデータ使用)

    短い時間間隔で発生したロック状況を分析する時に役立ちます。

    5秒パック照会

カラム情報の案内

カラム情報に関する詳しい内容は、次のリンクを参照してください。

項目説明
usernameDBユーザー名
commandCOMMAND_TYPEと同一、SQLのcommand number
statusセッションの状態
schemanameスキーマ、usernameと同一
osuserセッションに接続したOSのユーザー名
spidOSプロセスの識別子
processセッションに接続したクライアントプロセスID
logon_timeセッションが作成された時点
last_call_etセッションがアクティブになっている場合、アクティブになってから経過した時間(秒)
sql_textquery、実行されているstatement、リテラル文字列を除外したSQL文
sql_paramqueryから分離したリテラル値
prev_sql_text以前に実行したquery
prev_sql_param以前に実行したquery param
programクライアントで実行したプログラムの情報
typesession type - user background recursive (whatap.conf)で設定可能
seq#現在または最後の待機を固有に識別する番号(待機するたびに増加)
eventセッションがキューに登録されている場合は、セッションが待機しているリソースまたはイベントの数
p1最初の待機イベントのパラメータ(小数点)
p22番目の待機イベントのパラメータ(小数点)
p33番目の待機イベントのパラメータ(小数点)
wait_class待機中のイベントのクラス名
wait_timeセッションが現在待機中の場合、値は0です。0より大きい場合は、最後の待機時間(milliseconds)
seconds_in_waitセッションが現在待機中の場合、セッションが待機のために待機した時間を意味します。セッションが待機中でない場合、最後の待機開始からの時間を意味します。
state待機状態、WAITING, WAITED UNKNOWN TIME, WAITED SHORT TIME, WAITED KNOWN TIME
machineセッションに接続したクライアントサーバー名(hostname)
portクライアントポート番号
terminal端末名
moduleクライアントで実行したプログラムでユーザが設定したモジュール(module)名
アクション現在実行されているモジュールのユーザーが設定したアクション名
client_infoユーザーが設定したクライアント情報
client_identifierユーザーが設定したクライアントの識別子
session logical readsバッファキャッシュ内でデータを読み込んだ回数
physical reads物理ディスクからデータを読み出した回数
excute countSQLの実行数
parse count (hard)構文分析の呼び出し合計数(実際の構文分析)
parse count (total)構文分析呼び出しの総数(hard、soft、describe)
opened cursors current現在開いているcursorの数
db block changesデータベース内のすべてのブロックの変更回数
session pga memoryセッションの現在のPGAサイズ(size)
undo_segidundo情報id
undo_blkundoブロックの数
undo_recundoレコードの数
sql_addressSQL文(statement)を識別する情報
sql_hash_valueSQL文(statement)を識別する情報
sql_id現在実行中のSQL文(statement)のSQL識別子
sql_child_number現在実行中のSQL文(statement)の下位番号
sql_exec_start当該セッションで現在実行中のSQL実行は、開始点にあります。
sql_exec_idSQL実行識別子
prev_sql_addr最後に実行されたSQL文(statement)を識別する情報
prev_child_number最後に実行されたSQL文(statement)の下位番号
prev_exec_start最後に実行されたSQL文(statement)のSQL実行の開始時点
prev_exec_id最後に実行されたSQL文(statement)のSQL実行識別id
plsql_entry_object_idスタックの一番上にあるPL/SQL下位プログラムのオブジェクトid
plsql_entry_subprogram_idスタックで一番上にあるPL/SQL下位プログラムのサブプログラムid
plsql_object_id現在実行中のPL/SQLオブジェクトのサブプログラムid
taddrトランザクションのアドレス(address)
lockwaitlock wait address、セッションが待機中のロックアドレス
row_wait_objROW_WAIT_ROW#で指定された行を含むテーブルのオブジェクトID
row_wait_fileROW_WAIT_ROW#で指定された行を含むデータファイルの識別子
row_wait_blockROW_WAIT_ROW#で指定された行を含むブロックの識別子
row_wait_row現在ロックされている行
pdml_status値がENABLEDの場合、セッションがPARALLEL DML有効モードです。 値がDISABLEの場合、セッションでPARALLE DML有効モードに対応していません。 値がFORCEDの場合、セッションがPARALLE DMLを強制的に使用するように変更されたものです。
pq_status値がENABLEDの場合、セッションがPARALLEL QUERY有効モードです。 値がDISABLEの場合、セッションでPARALLEL QUERY有効モードに対応していません。 値がFORCEDの場合、セッションがPARALLEL QUERYを強制的に使用するように変更されたものです。
blocking_session_statusブロックしているセッションの存在有無に関する詳細を提供
blocking_instanceブロックしているセッションのインスタンス識別子
blocking_sessionブロックしているセッションのセッション識別子
final_blocking_session_status最終ブロックセッションの存在有無に関する詳細を提供
final_blocking_instance最終ブロックしているセッションのインスタンス識別子
final_blocking_session最終ブロックしているセッションのセッション識別子
service_nameセッションのサービス名やDB名と類似
saddrセッションアドレス
con_idデータに関連するコンテナのid(マルチデータベースをサポートする場合のみ)
ノート

WhaTapは、クライアントに関する情報をデフォルトで保存します。