sys.dm_resource_governor_resource_pools (Transact-SQL)

适用于:SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics Analytics Platform System (PDW)

返回有关当前资源池状态、资源池的当前配置以及资源池统计信息的信息。

注意

若要从 Azure Synapse Analytics 或 Analytics 平台系统(PDW)调用此名称,请使用名称 sys.dm_pdw_nodes_resource_governor_resource_pools。 Azure Synapse Analytics 中的无服务器 SQL 池不支持此语法。

列名称 数据类型 描述
pool_id int 资源池的 ID。 不可为 Null。
name sysname 资源池的名称。 不可为 Null。
statistics_start_time datetime 为该池重置统计信息的时间。 不可为 Null。
total_cpu_usage_ms bigint 自重置 Resource Govenor 统计信息以来的累计 CPU 使用量(毫秒)。 不可为 Null。
cache_memory_kb bigint 当前的缓存内存总用量(以 KB 为单位)。 不可为 Null。
compile_memory_kb bigint 当前总的内存盗用量(以 KB 为单位)。 大多数此用法用于编译和优化,但它也可以包括其他内存用户。 不可为 Null。
used_memgrant_kb bigint 当前通过内存授予使用(盗用)的内存总量。 不可为 Null。
total_memgrant_count bigint 此资源池中的内存授予累计计数。 不可为 Null。
total_memgrant_timeout_count bigint 此资源池中内存授予超时的累计计数。 不可为 Null。
active_memgrant_count int 当前内存授予计数。 不可为 Null。
active_memgrant_kb bigint 当前内存授予总量(以 KB 为单位)。 不可为 Null。
memgrant_waiter_count int 内存授予过程中当前挂起的查询数。 不可为 Null。
max_memory_kb bigint 该资源池可拥有的最大内存量(以 KB 为单位)。 这取决于当前设置和服务器状态。 不可为 Null。
used_memory_kb bigint 此资源池已用的内存量(以 KB 为单位)。 不可为 Null。
target_memory_kb bigint 此资源池试图获取的目标内存量(以 KB 为单位)。 这取决于当前设置和服务器状态。 不可为 Null。
out_of_memory_count bigint 由于重置了 Resource Governor 统计信息,池中的内存分配失败次数。 不可为 Null。
min_cpu_percent int 存在 CPU 争用时,资源池中所有请求的保证平均 CPU 带宽的当前配置。 不可为 Null。
max_cpu_percent int 当存在 CPU 争用时,资源池中所有请求允许的最大平均 CPU 带宽的当前配置。 不可为 Null。
min_memory_percent int 当存在内存争用时,资源池中所有请求的内存保证量的当前配置。 这不会与其他资源池共享。 不可为 Null。
max_memory_percent int 此资源池中的请求可使用的总服务器内存百分比的当前配置。 不可为 Null。
cap_cpu_percent int 资源池中所有请求接收的 CPU 带宽的硬上限。 将 CPU 最大带宽级别限制为指定的级别。 value 的允许范围是 1 到 100。 不可为 Null。

适用于:SQL Server 2012 (11.x) 及更高版本
min_iops_per_volume int 此池的每个磁盘卷设置的每秒最小 I/O(IOPS)。 Nullable。 NULL 如果资源池未针对 I/O 进行治理,则为 。 也就是说,资源池MIN_IOPS_PER_VOLUME和MAX_IOPS_PER_VOLUME设置为 0。

适用于:SQL Server 2014 (12.x) 及更高版本
max_iops_per_volume int 此池的每个磁盘卷设置的最大 I/O/秒(IOPS)。 Nullable。 NULL 如果资源池未针对 I/O 进行治理,则为 。 也就是说,资源池MIN_IOPS_PER_VOLUME和MAX_IOPS_PER_VOLUME设置为 0。

适用于:SQL Server 2014 (12.x) 及更高版本
read_io_queued_total int 自资源调控器重置以来排队的读取 I/O 总数。 Nullable。 NULL 如果资源池未针对 I/O 进行治理,则为 。 也就是说,资源池MIN_IOPS_PER_VOLUME和MAX_IOPS_PER_VOLUME设置为 0。

适用于:SQL Server 2014 (12.x) 及更高版本
read_io_issued_total int 自重置资源调控器统计信息以来颁发的读取 I/O 总数。 Nullable。 NULL 如果资源池未针对 I/O 进行治理,则为 。 也就是说,资源池MIN_IOPS_PER_VOLUME和MAX_IOPS_PER_VOLUME设置为 0。

适用于:SQL Server 2014 (12.x) 及更高版本
read_io_completed_total int 自重置资源调控器统计信息以来已完成的读取 I/O 总数。 不可为 Null。
read_io_throttled_total int 自重置资源调控器统计信息以来限制的读取 I/O 总数。 Nullable。 NULL 如果资源池未针对 I/O 进行治理,则为 。 也就是说,资源池MIN_IOPS_PER_VOLUME和MAX_IOPS_PER_VOLUME设置为 0。

适用于:SQL Server 2014 (12.x) 及更高版本
read_bytes_total bigint 自重置 Resource Governor 统计信息以来读取的字节总数。 不可为 Null。

适用于:SQL Server 2014 (12.x) 及更高版本
read_io_stall_total_ms bigint 读取 I/O 到达和完成之间的总时间(以毫秒为单位)。 不可为 Null。

适用于:SQL Server 2014 (12.x) 及更高版本
read_io_stall_queued_ms bigint 读取 I/O 到达和问题之间的总时间(以毫秒为单位)。 Nullable。 NULL 如果资源池未针对 I/O 进行治理,则为 。 也就是说,资源池MIN_IOPS_PER_VOLUME和MAX_IOPS_PER_VOLUME设置为 0。

若要确定池的 I/O 设置是否会导致延迟,请从read_io_stall_total_ms中减去read_io_stall_queued_ms

适用于:SQL Server 2014 (12.x) 及更高版本
write_io_queued_total int 自资源调控器统计信息重置以来排队的总写入 I/O 数。 Nullable。 NULL 如果资源池未针对 I/O 进行治理,则为 。 也就是说,资源池MIN_IOPS_PER_VOLUME和MAX_IOPS_PER_VOLUME设置为 0。

适用于:SQL Server 2014 (12.x) 及更高版本
write_io_issued_total int 自重置资源调控器统计信息以来颁发的写入 I/O 总数。 Nullable。 NULL 如果资源池未针对 I/O 进行治理,则为 。 也就是说,资源池MIN_IOPS_PER_VOLUME和MAX_IOPS_PER_VOLUME设置为 0。

适用于:SQL Server 2014 (12.x) 及更高版本
write_io_completed_total int 自重置资源调控器统计信息以来已完成的总写入 I/O。 不可为 Null。

适用于:SQL Server 2014 (12.x) 及更高版本
write_io_throttled_total int 自重置资源调控器统计信息以来,写入 I/O 总数受到限制。 不可为 Null。

适用于:SQL Server 2014 (12.x) 及更高版本
write_bytes_total bigint 自重置 Resource Governor 统计信息以来写入的字节总数。 不可为 Null。

适用于:SQL Server 2014 (12.x) 及更高版本
write_io_stall_total_ms bigint 写入 I/O 到达和完成之间的总时间(以毫秒为单位)。 不可为 Null。

适用于:SQL Server 2014 (12.x) 及更高版本
write_io_stall_queued_ms bigint 写入 I/O 到达和问题之间的总时间(以毫秒为单位)。 Nullable。 NULL 如果资源池未针对 I/O 进行治理,则为 。 也就是说,资源池MIN_IOPS_PER_VOLUME和MAX_IOPS_PER_VOLUME设置为 0。

这是 I/O 资源治理引入的延迟。

适用于:SQL Server 2014 (12.x) 及更高版本
io_issue_violations_total int I/O 问题冲突总数。 也就是说,I/O 问题的速率低于保留费率的次数。 Nullable。 NULL 如果资源池未针对 I/O 进行治理,则为 。 也就是说,资源池MIN_IOPS_PER_VOLUME和MAX_IOPS_PER_VOLUME设置为 0。

适用于:SQL Server 2014 (12.x) 及更高版本
io_issue_delay_total_ms bigint 计划问题与 I/O 的实际问题之间的总时间(以毫秒为单位)。 Nullable。 NULL 如果资源池未针对 I/O 进行治理,则为 。 也就是说,资源池MIN_IOPS_PER_VOLUME和MAX_IOPS_PER_VOLUME设置为 0。

适用于:SQL Server 2014 (12.x) 及更高版本
io_issue_ahead_total_ms bigint 仅供内部使用。

适用于:SQL Server 2016 (13.x) 及更高版本
reserved_io_limited_by_volume_total bigint 仅供内部使用。

适用于:SQL Server 2016 (13.x) 及更高版本
io_issue_delay_non_throttled_total_ms bigint 计划问题与非限制 I/O 的实际问题之间的总时间(以毫秒为单位)。

适用于:SQL Server 2016 (13.x) 及更高版本
total_cpu_delayed_ms bigint 可运行的工作器生成之间的总时间(以毫秒为单位),操作系统将控制权还给数据库引擎中的另一个可运行辅助角色。 这可能是空闲辅助角色。

适用于:SQL Server 2016 (13.x) 及更高版本
total_cpu_active_ms bigint 总活动 CPU 时间(以毫秒为单位)。

适用于:SQL Server 2016 (13.x) 及更高版本
total_cpu_violation_delay_ms bigint CPU 冲突总延迟(以毫秒为单位)。 也就是说,低于可运行辅助角色生成之间的最小保证延迟的总 CPU 时间延迟,并且操作系统将控制权还给数据库引擎中的另一个可运行辅助角色。

适用于:SQL Server 2016 (13.x) 及更高版本
total_cpu_violation_sec bigint CPU 冲突总数(以秒为单位)。 也就是说,发生 CPU 时间冲突时累积的总时间。

适用于:SQL Server 2016 (13.x) 及更高版本
total_cpu_usage_preemptive_ms bigint 在抢先模式计划工作负荷组时使用的 CPU 总时间(以毫秒为单位)。 不可为 Null。

若要执行数据库引擎之外的代码(例如扩展存储过程和分布式查询),线程必须执行在非抢占计划程序的控制之外执行。 若要这样做,工作线程将切换到抢先模式。

适用于:SQL Server 2016 (13.x) 及更高版本
max_vcores 十进制(5,2) 当存在 CPU 争用时,资源池中所有请求允许的最大平均 CPU 带宽的当前配置。 以 vCore 单位表示,可能不会反映数据库、弹性池或 SQL 托管实例可用的 vCore 数或逻辑 CPU 总数。

适用范围:Azure SQL 数据库和 Azure SQL 托管实例
total_cpu_usage_actual_ms bigint 标识为仅供参考。 不支持。 不保证以后的兼容性。
pdw_node_id int` 此分发所在节点的标识符。

适用于:Azure Synapse Analytics、Analytics Platform System (PDW)

注解

资源调控器工作负荷组和资源调控器资源池具有多对一映射关系。 因此,许多资源池统计信息都是派生自工作负荷组统计信息。

此动态管理视图显示了内存中配置。 若要查看存储的配置元数据,请使用 sys.resource_governor_resource_pools 目录视图。

权限

需要 VIEW SERVER STATE 权限。

SQL Server 2022 及更高版本的权限

要求具有对服务器的 VIEW SERVER PERFORMANCE STATE 权限。