sys.dm_db_resource_stats (データベースとAzure SQL Managed Instance Azure SQL)

適用対象:Azure SQL DatabaseAzure SQL Managed Instance

Azure SQL Database またはAzure SQL Managed Instance内のデータベースの CPU、I/O、およびメモリ消費量を返します。 アクティビティがない場合でも、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 のストレージ使用率 (レポート間隔の終了時のプール制限に対する割合)。 これには、次の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) プールをホストしているデータベース エンジン インスタンスによる平均 CPU 使用率 (インスタンス制限の割合)。 1 分の粒度で報告され、ユーザーと内部の両方のワークロードによる 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 データベースでのクエリ パフォーマンスの手動調整」、「リソース制限とリソース ガバナンスのSQL Database」のトピックを参照してください。

アクセス許可

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

注釈

によって sys.dm_db_resource_stats 返されるデータは、実行中のサービス レベル/パフォーマンス レベルで許可される最大制限に対する割合で表されます。

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

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

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

次の例では、Azure SQL Database または 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;  

参照