sys.dm_db_resource_stats (データベースとAzure SQL Managed Instance Azure SQL)
適用対象:Azure SQL Database
Azure 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_stats
Azure 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;