本文へスキップ

ロックツリー

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

SQL Serverデータベースから発生するロック(lock) 状況をリアルタイムでモニタリングし、セッションのロック状態に関する詳細情報を確認できる有用なツールです。この機能により、ユーザーはデータベースのパフォーマンス低下を引き起こす可能性のあるロックの問題をすばやく識別し、原因を分析できます。

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

  • ロック状況の視覚化:一日間で発生したロックの状況を視覚化したグラフで確認できます。これにより、ロックが発生した時間帯と頻度を一目で把握できます。

  • セッション情報提供:ロックを誘発したセッションの詳細情報をテーブル形式で提供します。各セッションの状態、待機時間、待機タイプ、実行中のSQL文などの情報を確認できます。

基本的な使い方

Lock tree

  1. 画面上段の 時間で照会する日付を選択して時間を設定します。

  2. モニタリングするインスタンスを選択します。

選択したインスタンスで設定した時間中に発生したロック(Lock) 状況を確認できます。

もし設定された時間の間ロック(Lock)が発生した場合は、Lock Wait Sessionsグラフと下段のテーブルで特定の時間帯にロックが集中するのか、または特定のセッションが継続的にロックを誘発するのかなどを分析できます。

ノート

チャートで3時間以内にドラッグして、5秒単位のデータを照会できます。ただし、5秒単位のデータは、最近 1か月の範囲に限って照会できます。1か月前のデータは、5分要約データでしか閲覧できません。例えば、40 日前のロックトリックデータをドラッグ(ドリルダウン)すると、5分要約データは照会できますが、5秒データは照会できません。

カラム情報ガイド

各セッションの詳細については、次のカラムを通じて提供します。

項目説明
applicationセッションを作成したアプリケーションの名前です。
clientセッションを作成したクライアントの名前またはIPアドレスです。
dbセッションがリンクされているデータベースの名前です。
elapsed_timeセッション開始後の経過時間(ミリ秒単位)です。 ロックが発生してからどれほど時間が経過したかを測定するために使用されます。
hostセッションを作成したクライアントホストの名前です。
idロックセッションの固有識別子(ID)です。
last_wait_typeセッションが最後に待っていた待機タイプです。
row_countセッションで処理された行(row)の数を示します。
sql_paramセッションで実行中のSQL文のパラメータ値です。
sql_textセッションで実行中のSQL文の全文です。
statusセッションの現状を示します。 例えば、「running」、「suspended」、「sleeping」などがあり、セッションがアクティブなのか、待機中なのかを意味します。
userSQL Serverに接続したユーザーの名前です。
wait_resourceセッションが待機しているリソース(resource)を示します。
wait_timeセッションが待機中の時間(ミリ秒単位)です。
wait_typeセッションが待機中の待機タイプを示します。 例えば、ロック待機中またはIO待機などの情報を含みます。
ノート

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

wait_type

wait_typeカラムは、SQL Serverでクエリやトランザクションが待機している特定のリソースやイベントを表す値です。 SQL Serverは、内部的に様々な待機タイプを使用してシステムのパフォーマンスを管理し、問題を診断します。

I/0関連待機

  • PAGEIOLATCH_EX:データページを読み取るために排他的ロックを待機します。

  • PAGEIOLATCH_SH:データページを読み取るために共有ロックを待機します。

  • FILEIO:ファイル I/O作業中の待機です。

ロック(Lock) 関連待機

  • LCK_M_X:排他的ロック待機です。

  • LCK_M_S:共有ロック待機です。

  • LCK_M_U:アップデートのロック待機です。

  • RESOURCE_SEMAPHORE':リソースセマフォの待機、メモリリソースを確保するために待機する場合です。

その他待機

  • CKPACKET:並列クエリでスレッド間同期の待機です。

  • ASYNC_NETWORK_IO:ネットワークI/O作業中の待機です。

  • SLEEP_*WAITFORまたはWAITFOR DELAY文により待機中です。

  • BROKER_*:Service Brokerメッセージ待機です。

  • LOCK_MANAGER:ロック管理待機、SQL Serverのロック管理機に関連する待機です。

wait_resource

wait_resourceカラムは、SQL Serverで実行中のリクエストが待機しているリソースに関する情報を提供します。 リクエストが特定のリソースを待っている状況を文字列形式で表現し、待機中のリソースの具体的な識別子や場所を示します。

主なリソースタイプと例については、以下を参照してください。

  • PAGE: <file_id>:<page_id>

    データページの待機を示します。

    例)PAGE: 1:12345

  • FILE: <file_id>

    データファイル全体に対する待機を示します。

    例)FILE: 1

  • 0BJECT: <cobject_id>

    特定のテーブルに対する待機を示します。

    例)0BJECT: 123456

  • DATABASE: <database_id>

    特定のデータベースに対する待機を示します。

    例)DATABASE: 5

  • KEY: <key_id>

    インデックスキーまたは他のデータ構造のキーに対する待機を示します。

    例)KEY: 67890

  • RID: <file_id>:<page_id>:<row_id>

    wait_resourceカラムがRID(Row Identifier)の場合は、SQL Serverの特定の行(row)に対する待機を示します。 RIDは、SQL Serverでテーブルの特定の行を識別する固有の識別子です。

    例)RID: 1:1234:5678

ノート
  • <file_id>は、データファイルのIDを意味します。

  • <page_id>は、ページのIDを意味します。

  • <object_id>は、テーブルのIDです。

  • <database_1d>は、データベースのIDです。

  • <key_id>はキーのIDです。

  • <row_id>は、ページ内で行を識別するIDです。