sys.resource_stats (Azure SQL Database)
適用対象: Azure SQL Database
Azure SQL Database 内のデータベースの CPU 使用率とストレージ データを返します。 データは、5 分間隔で収集と集計が実行されます。 ユーザー データベースごとに、5 分ごとに 1 行のレポートウィンドウがあり、リソース使用量が変化します。 返されるデータには、CPU 使用率、ストレージ サイズの変更、データベース SKU の変更が含まれます。 変更のないアイドル状態のデータベースには、5 分間隔ごとに行が含まれていない場合があります。 履歴データは約 14 日間保持されます。
Note
この動的管理ビューは、Azure SQL Database にのみ適用されます。 Azure SQL Managed Instance の同等のビューには、 sys.server_resource_statsを使用します。
列 | データ型 | 説明 |
---|---|---|
start_time | datetime | 5 分間のレポート間隔の開始を示す UTC 時刻。 |
end_time | datetime | 5 分間のレポート間隔の終了を示す UTC 時刻。 |
database_name | nvarchar(128) | ユーザー データベースの名前。 |
sku | nvarchar(128) | データベースのサービス階層。 使用できる値を次に示します。 Basic Standard Premium General Purpose Business Critical |
storage_in_megabytes | float | データベース データ、インデックス、ストアド プロシージャ、メタデータなど、期間の最大ストレージ サイズ (MB 単位)。 |
avg_cpu_percent | decimal(5,2) | サービス レベルの制限に対する割合での平均コンピューティング使用率。 |
avg_data_io_percent | decimal(5,2) | サービス レベルの制限に基づく平均 I/O 使用率 (%)。 ハイパースケール データベースについては、リソース使用率の統計の Data IOを参照してください。 |
avg_log_write_percent | decimal(5,2) | サービス層の上限に対するパーセンテージで示した、平均書き込みリソース使用率。 |
max_worker_percent | decimal(5,2) | データベースのサービス レベルの制限に基づく最大同時ワーカー数 (要求数)。 現在、最大は、同時ワーカー数の 15 秒のサンプルに基づいて、5 分間の間隔で計算されます。 |
max_session_percent | decimal(5,2) | データベースのサービス レベルの制限に基づく最大同時セッション数 (パーセント)。 現在、最大は、同時セッション数の 15 秒のサンプルに基づいて、5 分間の間隔で計算されます。 |
dtu_limit | int | この期間中のこのデータベースの現在の最大データベース DTU 設定。 |
xtp_storage_percent | decimal (5,2) | サービス レベルの制限に対するメモリ内 OLTP のストレージ使用率 (レポート間隔の最後)。 これには、メモリ最適化テーブル、インデックス、およびテーブル変数というインメモリ OLTP オブジェクトのストレージに使用されるメモリが含まれます。 ALTER TABLE 操作の処理に使用されるメモリも含まれます。 詳細については、「 Monitor In-Memory OLTP」を参照してください。 インメモリ OLTP がデータベースで使用されていない場合は 0 を返します。 |
avg_login_rate_percent | decimal (5,2) | 単に情報を示すためだけに特定されます。 サポートされていません。 将来の互換性は保証されません。 |
avg_instance_cpu_percent | decimal (5,2) | SQL Database プロセスの割合としての平均データベース CPU 使用率。 |
avg_instance_memory_percent | decimal (5,2) | SQL Database プロセスの割合としての平均データベース メモリ使用量。 |
cpu_limit | decimal (5,2) | この期間中のこのデータベースの仮想コアの数。 DTU ベースのモデルを使用するデータベースの場合、この列は NULL です。 |
allocated_storage_in_megabytes | float | データベース データの格納に使用できるフォーマット済みファイル領域 (MB 単位)。 書式設定されたファイル領域は、割り当てられたデータ領域とも呼ばれます。 詳細については、「 SQL Database でのファイル領域管理」を参照してください。 |
ヒント
これらの制限とサービス レベルの詳細については、サービスレベル トピックを参照してください。
アクセス許可
Azure SQL Database では、このビューは、仮想 master
データベースに接続するアクセス許可を持つすべてのユーザー ロールで使用できます。
解説
sys.resource_stats
によって返されるデータは、実行中のサービス レベル/パフォーマンス レベルで許可される上限に対する割合で表されます。
データベースがエラスティック プールのメンバーである場合、パーセント値として示されるリソース統計は、エラスティック プール構成で設定されたデータベースの最大制限の割合として表されます。
このデータをより詳細に表示するには、ユーザー データベース sys.dm_db_resource_stats
動的管理ビューを使用します。 このビューでは、15 秒ごとにデータがキャプチャされ、履歴データが 1 時間保持されます。 詳細については、「 sys.dm_db_resource_stats (Azure SQL Database)」を参照してください。
Note
動的管理ビューを使用した CPU 使用率のトラブルシューティングの詳細については、「Azure SQL Database のパフォーマンスに関する CPU パフォーマンスの問題を特定するまたは Azure SQL Managed Instance のパフォーマンスの CPU パフォーマンスの問題を特定するを参照してください。
最近のメモリ不足イベントを確認するには、 sys.dm_os_out_of_memory_eventsを使用します。
例
sys.resource_stats
を照会するには、サーバー上のmaster
データベースに接続必要があります。
次の例では、過去 1 週間の CPU 使用率の少なくとも 80% を平均しているすべてのデータベースを返します。
DECLARE @s datetime;
DECLARE @e datetime;
SET @s= DateAdd(d,-7,GetUTCDate());
SET @e= GETUTCDATE();
SELECT database_name, AVG(avg_cpu_percent) AS Average_CPU_Utilization
FROM sys.resource_stats
WHERE start_time BETWEEN @s AND @e
GROUP BY database_name
HAVING AVG(avg_cpu_percent) >= 80;
GO
関連項目
- サービス レベル
- サービス レベルの機能と制限
- sys.dm_os_out_of_memory_events (Azure SQL Database と Azure SQL Managed Instance)
次のステップ
関連する概念の詳細については、次の記事を参照してください。