sys.dm_os_performance_counters (Transact-SQL)
適用対象: SQL Server Azure SQL データベース Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
サーバーによって管理されているパフォーマンス カウンターごとに 1 つの行を返します。 各パフォーマンス カウンターの詳細については、「 SQL Server オブジェクトの使用」を参照してください。
Note
これを Azure Synapse Analytics または Analytics Platform System (PDW) から呼び出すには、 sys.dm_pdw_nodes_os_performance_counters
という名前を使用します。 この構文は、Azure Synapse Analytics のサーバーレス SQL プールでサポートされていません。
列名 | データ型 | 説明 |
---|---|---|
object_name | nchar(128) | このカウンターが属するカテゴリ。 |
counter_name | nchar(128) | カウンターの名前。 カウンターの詳細については、「sql Server オブジェクトを使用するのカウンターの一覧から選択するトピックの名前です。 |
instance_name | nchar(128) | カウンターの特定のインスタンスの名前。 多くの場合、データベース名が含まれています。 |
cntr_value | bigint | カウンターの現在の値。 注: 1 秒あたりのカウンターの場合、この値は累積されます。 レート値は、個別の時間間隔で値をサンプリングすることによって計算する必要があります。 連続する 2 つのサンプル値の差は、使用される時間間隔のレートと等しくなります。 |
cntr_type | int | Windows パフォーマンス アーキテクチャで定義されているカウンターの種類。 パフォーマンス カウンターの種類の詳細については WMI パフォーマンス カウンターの種類 ドキュメントまたは Windows Server のドキュメントを参照してください。 |
pdw_node_id | int | 適用対象: Azure Synapse Analytics、Analytics Platform System (PDW) このディストリビューションがオンになっているノードの識別子。 |
解説
SQL Server のインストール インスタンスが Windows オペレーティング システムのパフォーマンス カウンターを表示できない場合は、次の Transact-SQL クエリを使用して、パフォーマンス カウンターが無効にされたことを確認します。
SELECT COUNT(*) FROM sys.dm_os_performance_counters;
戻り値が 0 行の場合、パフォーマンス カウンターが無効であることを意味します。 その後、セットアップ ログを確認し、エラー 3409 を検索する必要があります。 Reinstall sqlctr.ini for this instance, and ensure that the instance login account has correct registry permissions.
パフォーマンス カウンターが有効になっていないことを示します。 3409 エラーの直前のエラーは、パフォーマンス カウンターの有効化の失敗の根本原因を示している必要があります。 セットアップ ログ ファイルの詳細については、「 View」および「SQL Server セットアップ ログ ファイルの読み取り」を参照してください。
cntr_type
列の値が 65792 のパフォーマンス カウンターには、平均ではなく、最後に観察された値のスナップショットのみが表示されます。
cntr_type
列の値が272696320または272696576パフォーマンス カウンターには、サンプル間隔の 1 秒ごとに完了した操作の平均数が表示されます。 この種類のカウンターは、システム クロックのティック単位で時間を測定します。 たとえば、 Buffer Manager:Lazy writes/sec
カウンターと Buffer Manager:Checkpoint pages/sec
カウンターに対してのみ、スナップショットのような最後の秒の読み取り値を取得するには、1 秒離れた 2 つのコレクション ポイント間の差分を比較する必要があります。
cntr_type
列の値が537003264されるパフォーマンス カウンターでは、セットに対するサブセットの比率がパーセンテージとして表示されます。 たとえば、 Buffer Manager:Buffer cache hit ratio
カウンターでは、キャッシュ ヒットの合計数とキャッシュ参照の合計数が比較されます。 そのため、最後の 1 秒のみのスナップショットのような読み取り値を取得するには、現在の値と、1 秒離れた 2 つのコレクション ポイント間の基本値 (分母) の差分を比較する必要があります。 対応する基本値は、cntr_type
列の値が1073939712されるパフォーマンス カウンター Buffer Manager:Buffer cache hit ratio base
です。
cntr_type
列の値が1073874176されるパフォーマンス カウンターには、処理されたアイテムの操作数に対する比率として、平均して処理された項目の数が表示されます。 たとえば、 Locks:Average Wait Time (ms)
カウンターは、1 秒あたりのロック待機数と 1 秒あたりのロック要求数を比較して、待機を発生させた各ロック要求の平均待機時間 (ミリ秒) を表示します。 そのため、最後の 1 秒のみのスナップショットのような読み取り値を取得するには、現在の値と、1 秒離れた 2 つのコレクション ポイント間の基本値 (分母) の差分を比較する必要があります。 対応する基本値は、cntr_type
列の値が1073939712されるパフォーマンス カウンター Locks:Average Wait Time Base
です。
sys.dm_os_performance_counters
DMV 内のデータは、データベース エンジンの再起動後に保持されません。 データベース エンジンが最後に起動された時刻を調べるには、sys.dm_os_sys_info の sqlserver_start_time
を使用します。
権限
SQL Server と SQL Managed Instance では、VIEW SERVER STATE
アクセス許可が必要です。
SQL Database の Basic、S0、S1 サービス対象、および Elastic Pool のデータベースの場合、サーバー管理者アカウント、Microsoft Entra 管理者アカウント、または ##MS_ServerStateReader##
サーバー ロールのメンバーシップが必要です。 他のすべての SQL Database サービス目標では、データベースに対する VIEW DATABASE STATE
アクセス許可または ##MS_ServerStateReader##
サーバー ロールのメンバーシップのいずれかが必要です。
SQL Server 2022 以降でのアクセス許可
サーバーに対する VIEW SERVER PERFORMANCE STATE アクセス許可が必要です。
例
次の例では、スナップショット カウンターの値を表示するすべてのパフォーマンス カウンターを返します。
SELECT object_name, counter_name, instance_name, cntr_value, cntr_type
FROM sys.dm_os_performance_counters
WHERE cntr_type = 65792 OR cntr_type = 272696320 OR cntr_type = 537003264;
関連項目
SQL Server オペレーティングシステム関連の動的管理ビュー (Transact-sql)
sys.sysperfinfo (Transact-SQL)
sys.dm_os_sys_info (Transact-SQL)