sys.dm_db_resource_stats (Azure SQL Database と Azure SQL Managed Instance)

適用対象: はいAzure SQL データベース はいAzure SQL Managed Instance

は、データベースまたはの CPU、i/o、およびメモリの消費量を返し Azure SQL データベース Azure SQL Managed Instance ます。 アクティビティがない場合でも、15秒ごとに1つの行が存在します。 履歴データは約1時間保持されます。

[列] データ型 説明
end_time datetime UTC 時刻は、現在のレポート間隔の終了を示します。
avg_cpu_percent decimal (5, 2) サービス層の制限に対する割合での平均コンピューティング使用率。
avg_data_io_percent decimal (5, 2) サービス層の上限に対する平均データ i/o 使用率 (%)。 Hyperscale データベースについては、「 リソース使用率の統計情報のデータ IO」を参照してください。
avg_log_write_percent decimal (5, 2) サービス層の制限に対する割合としての、平均トランザクションログの書き込み (MBps)。
avg_memory_usage_percent decimal (5, 2) サービス層の制限に対する平均メモリ使用率 (%)。

これには、バッファープールページと In-Memory OLTP オブジェクトの格納に使用されるメモリが含まれます。
xtp_storage_percent decimal (5, 2) サービス階層の制限 (レポート間隔の終了時) に対する In-Memory OLTP の Storage 使用率。 これには、メモリ最適化テーブル、インデックス、およびテーブル変数の In-Memory OLTP オブジェクトのストレージに使用されるメモリが含まれます。 また、ALTER TABLE 操作の処理に使用されるメモリも含まれています。

In-Memory OLTP がデータベースで使用されていない場合は0を返します。
max_worker_percent decimal (5, 2) データベースのサービス階層の上限に対する割合での最大同時実行ワーカー (要求)。
max_session_percent decimal (5, 2) データベースのサービス層の上限に対する割合での最大同時セッション数。
dtu_limit int この期間中のこのデータベースの現在の最大データベース DTU 設定です。 仮想コアベースのモデルを使用するデータベースの場合、この列は NULL です。
cpu_limit decimal (5, 2) この期間中のこのデータベースの仮想コア数。 DTU ベースのモデルを使用するデータベースの場合、この列は NULL です。
avg_instance_cpu_percent decimal (5, 2) オペレーティングシステムによって測定された、データベースをホストしている SQL Server インスタンスの平均 CPU 使用率。 ユーザーワークロードと内部ワークロードの両方による CPU 使用率が含まれます。
avg_instance_memory_percent decimal (5, 2) オペレーティングシステムによって測定された、データベースをホストしている SQL Server インスタンスのメモリ使用量の平均値。 ユーザーワークロードと内部ワークロードの両方によるメモリ使用率が含まれます。
avg_login_rate_percent decimal (5, 2) 単に情報を示すためだけに特定されます。 サポートされていません。 将来の互換性は保証されません。
replica_role int 現在のレプリカのロールのうち、0がプライマリ、1がセカンダリ、2がフォワーダー (geo セカンダリのプライマリ) であることを表します。 読み取り可能なすべてのセカンダリに ReadOnly インテントを使用して接続すると、"1" と表示されます。 ReadOnly インテントを指定せずに geo セカンダリに接続すると、"2" (フォワーダーに接続) が表示されます。

ヒント

これらの制限とサービスレベルの詳細については、「サービスレベル」、「 Azure SQL Database でのクエリのパフォーマンスの手動チューニング」、および「リソースの制限とリソースガバナンスの SQL Database」を参照してください。

アクセス許可

このビューには、 VIEW DATABASE STATE 権限が必要です。

解説

によって返されるデータ sys.dm_db_resource_stats は、実行しているサービス階層/パフォーマンスレベルに対して許容される最大限度に対する割合として表されます。

過去60分以内にデータベースが別のサーバーにフェールオーバーされた場合、ビューはそのフェールオーバー以降の時間についてのみデータを返します。

リテンション期間が長いこのデータの詳細なビューを表示するには、 sys.resource_stats Azure SQL Database のカタログビュー、または sys.server_resource_stats Azure SQL Managed Instance のカタログビューを使用します。 このビューは、5分ごとにデータをキャプチャし、履歴データを14日間保持します。 詳細については、「 sys.resource_stats 」または「 sys.server_resource_stats」を参照してください。

データベースがエラスティックプールのメンバーである場合、パーセント値として表示されるリソース統計は、エラスティックプール構成で設定されているデータベースの上限に対する比率として表されます。

次の例では、現在接続しているデータベースまたはの最新の時刻で並べ替えられたリソース使用率データを返し Azure SQL データベース Azure SQL Managed Instance ます。

SELECT * FROM sys.dm_db_resource_stats ORDER BY end_time DESC;  

次の例では、過去1時間のユーザーデータベースのパフォーマンスレベルで許容される最大 DTU 制限の割合という観点から、平均 DTU 消費量を示しています。 パフォーマンスレベルは、一定の割合で100% 近くの割合で増やすことを検討してください。

SELECT end_time,   
  (SELECT Max(v)    
   FROM (VALUES (avg_cpu_percent), (avg_data_io_percent), (avg_log_write_percent)) AS    
   value(v)) AS [avg_DTU_percent]   
FROM sys.dm_db_resource_stats;  

次の例では、過去1時間の CPU 使用率、データとログ i/o、およびメモリ使用量の平均値と最大値を返します。

SELECT    
    AVG(avg_cpu_percent) AS 'Average CPU Utilization In Percent',   
    MAX(avg_cpu_percent) AS 'Maximum CPU Utilization In Percent',   
    AVG(avg_data_io_percent) AS 'Average Data IO In Percent',   
    MAX(avg_data_io_percent) AS 'Maximum Data IO In Percent',   
    AVG(avg_log_write_percent) AS 'Average Log Write I/O Throughput Utilization In Percent',   
    MAX(avg_log_write_percent) AS 'Maximum Log Write I/O Throughput Utilization In Percent',   
    AVG(avg_memory_usage_percent) AS 'Average Memory Usage In Percent',   
    MAX(avg_memory_usage_percent) AS 'Maximum Memory Usage In Percent'   
FROM sys.dm_db_resource_stats;  

参照