sys.dm_os_performance_counters (Transact-SQL)

適用対象:yesSQL Server (サポートされているすべてのバージョン) YesAzure SQL Database YesAzure SQL Managed Instance yesAzure Synapse Analytics yesAnalytics 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 パフォーマンス アーキテクチャによって定義されるカウンターの種類。 パフォーマンス カウンターの種類の詳細については、ドキュメントまたは Windows Server の WMI パフォーマンス カウンターの種類に関するドキュメントを参照してください。
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 エラーの直前のエラーは、パフォーマンス カウンターの有効化の失敗の根本原因を示している必要があります。 ログ ファイルのセットアップの詳細については、「セットアップ ログ ファイルの表示と読み取りSQL Server」を参照してください。

列の cntr_type 値が 65792 のパフォーマンス カウンターでは、平均ではなく、最後に観測された値のスナップショットのみが表示されます。

列の cntr_type 値が272696320または272696576パフォーマンス カウンターには、サンプル間隔の 1 秒ごとに完了した操作の平均数が表示されます。 このタイプのカウンターは、システム時計のタイマー刻みで時間を計測します。 たとえば、最後の 2 秒のみのBuffer Manager:Lazy writes/secBuffer Manager:Checkpoint pages/secスナップショットのような読み取りを取得するには、1 秒離れた 2 つのコレクション ポイント間の差分を比較する必要があります。

列の cntr_type 値が537003264されるパフォーマンス カウンターでは、サブセットとセットの比率がパーセンテージとして表示されます。 たとえば、カウンターは Buffer Manager:Buffer cache hit ratio キャッシュ ヒットの合計数とキャッシュ参照の合計数を比較します。 そのため、最後の 1 秒のみのスナップショットのような読み取りを取得するには、現在の値と、1 秒離れた 2 つのコレクション ポイント間の基本値 (分母) の差分を比較する必要があります。 対応する基本値は、列の値が1073939712されるcntr_typeパフォーマンス カウンターBuffer Manager:Buffer cache hit ratio baseです。

列の cntr_type 値が1073874176されるパフォーマンス カウンターでは、処理された項目の操作数に対する比率として、平均して処理される項目の数が表示されます。 たとえば、カウンターは Locks:Average Wait Time (ms) 、1 秒あたりのロック待機数と 1 秒あたりのロック要求数を比較し、待機が発生した各ロック要求の平均待機時間 (ミリ秒単位) を表示します。 そのため、最後の 1 秒のみのスナップショットのような読み取りを取得するには、現在の値と、1 秒離れた 2 つのコレクション ポイント間の基本値 (分母) の差分を比較する必要があります。 対応する基本値は、列の値が1073939712されるcntr_typeパフォーマンス カウンターLocks:Average Wait Time Baseです。

データベース エンジンの sys.dm_os_performance_counters 再起動後、DMV 内のデータは保持されません。 データベース エンジンが最後に起動された時刻を調べるには、sys.dm_os_sys_infosqlserver_start_time を使用します。

アクセス許可

SQL Server と SQL Managed Instance では、VIEW SERVER STATE アクセス許可が必要です。

SQL Database BasicS0、および S1 のサービス目標、およびエラスティック プール内のデータベースの場合、サーバー管理者アカウント、Azure Active Directory 管理者アカウント、または ##MS_ServerStateReader##サーバー ロールのメンバーシップが必要です。 他のすべての SQL Database サービス目標では、データベースに対する VIEW DATABASE STATE アクセス許可または ##MS_ServerStateReader## サーバー ロールのメンバーシップのいずれかが必要です。

次の例では、スナップショット カウンター値を表示するすべてのパフォーマンス カウンターを返します。

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)