sys.resource_stats(Azure SQL 数据库)
适用于:Azure SQL 数据库
返回 Azure SQL 数据库中数据库的 CPU 使用率和存储数据。 在五分钟间隔内收集并聚合数据。 对于每个用户数据库,每五分钟报告窗口有一行,其中资源消耗量发生了变化。 返回的数据包括 CPU 使用率、存储大小更改和数据库 SKU 修改。 没有更改的空闲数据库可能每五分钟间隔一次没有行。 历史数据保留大约 14 天。
注意
此动态管理视图仅适用于Azure SQL 数据库。 对于Azure SQL 托管实例的等效视图,请使用sys.server_resource_stats。
列数 | 数据类型 | 描述 |
---|---|---|
start_time | datetime | 指示五分钟报告间隔开始的 UTC 时间。 |
end_time | datetime | 指示五分钟报告间隔结束的 UTC 时间。 |
database_name | nvarchar(128) | 用户数据库的名称。 |
sku | nvarchar(128) | 数据库的服务层。 下面是可能的值: 基本 标准 高级 常规用途 业务关键 |
storage_in_megabytes | float | 时间段的最大存储大小(包括数据库数据、索引、存储过程和元数据)。 |
avg_cpu_percent | 十进制(5,2) | 平均计算使用率(以服务层限制的百分比表示)。 |
avg_data_io_percent | 十进制(5,2) | 平均 I/O 使用率(以基于服务层限制的百分比表示)。 有关超大规模数据库,请参阅 资源利用率统计信息中的数据 IO。 |
avg_log_write_percent | 十进制(5,2) | 平均写入资源使用率(以服务层限制的百分比表示)。 |
max_worker_percent | 十进制(5,2) | 基于数据库服务层级的限制,最大并发辅助角色(请求)百分比。 目前,根据并发工作器计数的 15 秒样本计算 5 分钟间隔的最大值。 |
max_session_percent | 十进制(5,2) | 基于数据库服务层级的限制,最大并发会话百分比。 目前,根据并发会话计数的 15 秒样本计算 5 分钟间隔的最大值。 |
dtu_limit | int | 此时间间隔内此数据库的当前最大数据库 DTU 设置。 |
xtp_storage_percent | 十进制 (5,2) | 内存中 OLTP 的存储利用率(以服务层限制的百分比为单位)(在报告间隔结束时)。 这包括用于存储以下内存中 OLTP 对象的内存:内存优化表、索引和表变量。 它还包括用于处理 ALTER TABLE 操作的内存。 有关详细信息,请参阅 “监视内存中 OLTP”。 如果未在数据库中使用内存中 OLTP,则返回 0。 |
avg_login_rate_percent | 十进制 (5,2) | 标识为仅供参考。 不支持。 不保证以后的兼容性。 |
avg_instance_cpu_percent | 十进制 (5,2) | 作为SQL 数据库进程的百分比的平均数据库 CPU 使用率。 |
avg_instance_memory_percent | 十进制 (5,2) | 作为SQL 数据库进程的百分比的平均数据库内存使用量。 |
cpu_limit | 十进制 (5,2) | 此时间间隔内此数据库的 vCore 数。 对于使用基于 DTU 的模型的数据库,此列为 NULL。 |
allocated_storage_in_megabytes | float | 可用于存储数据库数据的格式化文件空间量(以 MB 为单位)。 格式化的文件空间也称为分配的数据空间。 有关详细信息,请参阅:SQL 数据库中的文件空间管理 |
提示
有关这些限制和服务层级的更多上下文,请参阅主题 “服务层”。
权限
在Azure SQL 数据库中,此视图可供有权连接到虚拟master
数据库的所有用户角色使用。
注解
返回 sys.resource_stats
的数据表示为正在运行的服务层/性能级别允许的最大限制的百分比。
当数据库是弹性池的成员时,资源统计信息显示为百分比值,表示为弹性池配置中设置的数据库的最大限制百分比。
若要更精细地查看此数据,请使用 sys.dm_db_resource_stats
用户数据库中的动态管理视图。 此视图每 15 秒钟捕获一次数据,并将历史数据保留 1 个小时。 有关详细信息,请参阅sys.dm_db_resource_stats(Azure SQL 数据库)。
注意
有关使用动态管理视图排查 CPU 使用率问题的详细信息,请参阅识别Azure SQL 数据库性能中的 CPU 性能问题,或识别Azure SQL 托管实例性能中的 CPU 性能问题。
若要查看最近的内存不足事件,请使用 sys.dm_os_out_of_memory_events。
示例
必须连接到master
逻辑服务器上的数据库才能查询sys.resource_stats
。
以下示例返回过去一周内平均 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
另请参阅
后续步骤
通过以下文章详细了解相关概念: