本文へスキップ

ロックツリー

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

一日の間に発生したロック(lock)の推移を分析するツールです。この機能によってロックを発生させたセッション(lock holder)と待機しているセッション(lock waiter)に対するツリー構造を視覚的に確認できます。特定時点で発生したロック情報のholderとwaiter間の関係を分析できます。

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

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

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

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

これにより、データベース管理者はロック関連の問題を迅速に識別して解決でき、データベースの性能を最適化できます。

基本的な使い方

ロックツリー

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

Global Lock情報の確認

クラスターで構成されたOracleデータベース環境で、Global Lock情報の確認は、いろいろメリットがあります。 特に、Oracle Real Application Clusters (RAC) 環境で、このような情報は性能の最適化と問題の解決に不可欠です。

クラスターで構成された環境であれば、インスタンスからクラスターを選択できます。

ロックツリー

  • Global Lock Wait Sessions

    選択した時間範囲で発生したGlobal Lockの待機セッション数を時間帯ごとに可視化して表示します。 特定の時間帯に発生したロックの待機数を一目で把握できます。 各色は異なるインスタンスを表し、ロックが発生したインスタンスごとに区分されて表示します。

  • Global Lock Tree

    ロックに関する詳細情報をツリー構造で確認できます。 ロックが発生したインスタンス、セッションID(sid)、セッション状態(status) など重要な情報が含まれます。 ロックのホルダータイプ(holder type)とロックモード(lock mode)、そしてロックの待機タイプ(waiter type)を通じて、ロックの原因と影響を迅速に把握できます。

    ツリー構造により、どのセッションがロックを掛けており、どのセッションが待機中なのかを把握できます。

ノート

クラスターを選択し、照会できる最大の時間範囲は3時間です。

Tips
  • RAC環境では、複数のインスタンスが同じデータに同時にアクセスできます。 Global Lock情報は、このような同時アクセス状況でデータの一貫性を確保するための主要なメカニズムの1つです。 これをモニタリングすることで、データ一貫性の維持有無を確認できます。

  • Global Lock待ち時間は、システムの性能に大きな影響を与える可能性があります。 クラスターのインスタンス間で発生するGlobal Lockの競合をモニタリングすると、性能低下の原因となるボトルネックを早期に検知できます。

  • Global Lock情報は、トランザクションがクラスターでどのように処理されるかに対する重要なデータを提供します。 同時性制御が適切に行われないと、トランザクションの待ち時間が長くなったり、デッドロックが発生する可能性があります。

  • RAC環境では、インスタンス間の負荷分散が非常に重要です。 Global Lock情報を通じて、どのインスタンスがより多くの競合を経験しているかを把握することができ、これに基づいて負荷を再分配したり、リソース管理を改善できます。

カラム情報の案内

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

項目説明
sidセッションのID
cpu(xos)XOSをインストールした場合、収集されるCPUの使用率
serial#同一のセッションidを使用した場合、判別するために増加させる値
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(マルチデータベースをサポートする場合のみ)
rss(xos)XOSエージェントで収集するOSメトリクス
pss(xos)XOSエージェントで収集するOSメトリクス
ioread(xos)XOSエージェントで収集するOSメトリクス
iowrite(xos)XOSエージェントで収集するOSメトリクス
ノート

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