sys.dm_db_resource_stats (Azure SQL Database)
適用対象: Azure SQL Database
Azure SQL Database のデータベースの CPU、I/O、メモリ消費量を返します。 アクティビティがない場合でも、15 秒ごとに 1 つの行が存在します。 履歴データは約 1 時間保持されます。
Note
sys.dm_db_resource_stats
は、Azure SQL Managed Instance ではサポートされていません。 代わりに、 sys.server_resource_stats カタログ ビューを使用してください。
列 | データ型 | 説明 |
---|---|---|
end_time |
datetime | UTC 時刻は、現在のレポート間隔の終了を示します。 |
avg_cpu_percent |
decimal (5,2) | サービス レベルの制限に対する割合での平均コンピューティング使用率。 |
avg_data_io_percent |
decimal (5,2) | サービス レベルの制限に対する割合での平均データ I/O 使用率。 ハイパースケール データベースについては、リソース使用率の統計の Data IOを参照してください。 |
avg_log_write_percent |
decimal (5,2) | サービス レベルの制限に対する平均トランザクション ログ書き込み (MB/秒)。 |
avg_memory_usage_percent |
decimal (5,2) | サービス レベルの制限に対する平均メモリ使用率 (%)。 これには、バッファー プール ページとインメモリ OLTP オブジェクトのストレージに使用されるメモリが含まれます。 |
xtp_storage_percent |
decimal (5,2) | インメモリ OLTP のストレージ使用率 (レポート間隔の終了時のプールの制限に対する割合)。 これには、メモリ最適化テーブル、インデックス、およびテーブル変数というインメモリ OLTP オブジェクトのストレージに使用されるメモリが含まれます。 また、メモリ最適化テーブルに対する ALTER TABLE 操作の処理に使用されるメモリも含まれます。 インメモリ 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 - 高可用性 (HA) セカンダリ 2 - geo レプリケーション フォワーダー 3 - 名前付きレプリカ 読み取り可能なセカンダリ ReadOnly インテントに接続されている場合は、1 を報告。 ReadOnly 意図を指定せずに geo セカンダリに接続する場合は、geo レプリケーション フォワーダーへの接続を反映するように 2 を報告します。 意図を指定せずに名前付きレプリカに接続 ReadOnly 場合は、3 を報告します。 |
ヒント
これらの制限とサービス レベルの詳細については、「 Service Tiers、 Azure SQL Database のクエリ パフォーマンスの管理、および SQL Database のリソース制限とリソース ガバナンス に関するトピックを参照してください。
アクセス許可
このビューには VIEW DATABASE STATE
アクセス許可が必要です。
解説
sys.dm_db_resource_stats
によって返されるデータは、実行中のサービス レベル/パフォーマンス レベルで許可される上限に対する割合で表されます。
過去 60 分以内にデータベースが別のサーバーにフェールオーバーされた場合、ビューはそのフェールオーバー以降の時間のデータのみを返します。
保持期間が長いこのデータをより詳細に表示するには、Azure SQL Database の sys.resource_stats
カタログ ビューを使用します。 このビューでは、5 分ごとにデータがキャプチャされ、履歴データが 14 日間保持されます。 詳細については、「 sys.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;