sys.dm_user_db_resource_governance (Transact-SQL)

适用于:不支持。SQL Server Azure SQL 数据库不支持。 Azure Synapse 不支持。 Analytics Platform System (PDW)

返回当前数据库或弹性池中资源治理机制使用的实际配置和容量设置。

对于单一数据库,返回当前数据库的单个行。 对于弹性池,为调用方持有VIEW DATABASE STATE或权限的每个数据库返回一行;如果调用方持有VIEW SERVER STATEVIEW DATABASE PERFORMANCE STATEVIEW SERVER PERFORMANCE STATE权限,则返回弹性池中所有数据库的行。

列名称 数据类型 描述
database_id int 数据库的 ID,在数据库或弹性池中唯一,但不在逻辑服务器中。 有关详细信息,请参阅 DB_ID
logical_database_guid uniqueidentifier 用户数据库的唯一标识符,该标识符在用户数据库的生命周期内保持不变。 重命名数据库或更改其服务级别目标不会更改此值。
physical_database_guid uniqueidentifier 与用户数据库对应的当前物理数据库的唯一标识符。 更改数据库服务级别目标将导致此值更改。
server_name nvarchar 逻辑服务器名称。
database_name nvarchar 用户数据库名称。
slo_name nvarchar 服务级别目标,包括硬件生成。
dtu_limit int 数据库的 DTU 限制(vCore 的 NULL)。
cpu_limit int 数据库的 vCore 限制(DTU 数据库的 NULL)。
min_cpu tinyint 用户工作负荷资源池的MIN_CPU_PERCENT值。 请参阅 资源池概念
max_cpu tinyint 用户工作负荷资源池的MAX_CPU_PERCENT值。 请参阅 资源池概念
cap_cpu tinyint 用户工作负荷资源池的CAP_CPU_PERCENT值。 请参阅 资源池概念
min_cores smallint 仅供内部使用。
max_dop smallint 用户工作负荷组的MAX_DOP值。 请参阅 CREATE WORKLOAD GROUP
min_memory int 用户工作负荷资源池的MIN_MEMORY_PERCENT值。 请参阅 资源池概念
max_memory int 用户工作负荷资源池的MAX_MEMORY_PERCENT值。 请参阅 资源池概念
max_sessions int 用户工作负荷组中允许的最大会话数。
max_memory_grant int 用户工作负荷组的REQUEST_MAX_MEMORY_GRANT_PERCENT值。 请参阅 CREATE WORKLOAD GROUP
max_db_memory int 仅供内部使用。
govern_background_io bit 仅供内部使用。
min_db_max_size_in_mb bigint 数据文件的最小max_size值(以 MB 为单位)。 请参阅 sys.database_files
max_db_max_size_in_mb bigint 数据文件的最大max_size值(以 MB 为单位)。 请参阅 sys.database_files
default_db_max_size_in_mb bigint 数据文件的默认max_size值(以 MB 为单位)。 请参阅 sys.database_files
db_file_growth_in_mb bigint 数据文件的默认增长增量(以 MB 为单位)。 请参阅 sys.database_files
initial_db_file_size_in_mb bigint 新数据文件的默认大小(以 MB 为单位)。 请参阅 sys.database_files
log_size_in_mb bigint 新日志文件的默认大小(以 MB 为单位)。 请参阅 sys.database_files
instance_cap_cpu int 仅供内部使用。
instance_max_log_rate bigint SQL Server 实例的日志生成速率限制(以字节/秒为单位)。 适用于实例生成的所有日志,包括 tempdb 和其他系统数据库。 在弹性池中,适用于池中所有数据库生成的日志。
instance_max_worker_threads int SQL Server 实例的工作线程限制。
replica_type int 副本类型,其中 0 是主要副本,1 是辅助副本。
max_transaction_size bigint 任何事务使用的最大日志空间(以 KB 为单位)。
checkpoint_rate_mbps int 仅供内部使用。
checkpoint_rate_io int 仅供内部使用。
last_updated_date_utc datetime 上次设置的日期和时间以 UTC 为单位更改或重新配置。
primary_group_id int 主副本和辅助副本上用户工作负荷的工作负荷组 ID。
primary_group_max_workers int 用户工作负荷组的工作线程限制。
primary_min_log_rate bigint 用户工作负荷组级别的最小日志速率(以字节/秒为单位)。 资源治理不会尝试降低低于此值的日志速率。
primary_max_log_rate bigint 用户工作负荷组级别每秒的最大日志速率(以字节为单位)。 资源治理不允许超过此值的日志速率。
primary_group_min_io int 用户工作负荷组的最低 IOPS。 资源治理不会尝试减少低于此值的 IOPS。
primary_group_max_io int 用户工作负荷组的最大 IOPS。 资源治理不允许超过此值的 IOPS。
primary_group_min_cpu FLOAT 用户工作负荷组级别的最小 CPU 百分比。 资源治理不会尝试降低低于此值的 CPU 利用率。
primary_group_max_cpu FLOAT 用户工作负荷组级别的最大 CPU 百分比。 资源治理不允许 CPU 使用率超过此值。
primary_log_commit_fee int 用户工作负荷组的日志速率治理提交费用(以字节为单位)。 提交费用将每个日志 IO 的大小增加一个固定值,以便只考虑日志费率。 存储的实际日志 IO 不会增加。
primary_pool_max_workers int 用户工作负荷资源池的工作线程限制。
pool_max_io int 用户工作负荷资源池的最大 IOPS 限制。
govern_db_memory_in_resource_pool bit 仅供内部使用。
volume_local_iops int 仅供内部使用。
volume_managed_xstore_iops int 仅供内部使用。
volume_external_xstore_iops int 仅供内部使用。
volume_type_local_iops int 仅供内部使用。
volume_type_managed_xstore_iops int 仅供内部使用。
volume_type_external_xstore_iops int 仅供内部使用。
volume_pfs_iops int 仅供内部使用。
volume_type_pfs_iops int 仅供内部使用。
user_data_directory_space_quota_mb int 数据库引擎实例的最大本地存储。 请参阅 存储空间治理
user_data_directory_space_usage_mb int 数据文件、事务日志文件和“tempdb”文件的当前本地存储消耗量。 每五分钟更新一次。
bufferpool_extension_size_gb int 仅供内部使用。
pool_max_log_rate bigint 用户资源池级别的最大日志速率(以字节/秒为单位)。 资源治理不允许资源池中所有工作负荷组的总日志速率高于此值。
primary_group_max_outbound_connection_workers int 主用户工作负荷组的出站连接工作线程限制。
primary_pool_max_outbound_connection_workers int 用户工作负荷资源池的出站连接工作线程限制。
replica_role tinyint 表示当前副本角色。

0 - 主要
1 - 高可用性 (HA) 辅助
2 - 异地复制转发器
3 - 与 ReadOnly 意向连接到任何可读辅助副本时,命名副本

报告 1。 如果在未指定 ReadOnly 意向的情况下连接到异地辅助数据库,则报告 2 以反映与异地复制转发器的连接。 如果在未指定 ReadOnly 意向的情况下连接到命名副本,则报告 3。

权限

在SQL 数据库基本、S0S1 服务目标以及弹性池中的数据库、服务器管理员帐户、Microsoft Entra 管理员帐户或服务器角色的成员##MS_ServerStateReader##身份是必需的。 对于所有其他 SQL 数据库服务目标,需要数据库的 VIEW DATABASE STATE 权限或 ##MS_ServerStateReader## 服务器角色中的成员身份。

注解

有关Azure SQL 数据库中的资源治理的说明,请参阅SQL 数据库资源限制

重要

此 DMV 返回的大多数数据用于内部使用,随时可能会更改。

示例

以下查询在用户数据库的上下文中执行,在用户工作负荷组和资源池级别返回最大日志速率和最大 IOPS。 对于单一数据库,返回一行。 对于弹性池中的数据库,则为池中的每个数据库都返回一行。

SELECT database_name,
       primary_group_id,
       primary_max_log_rate,
       primary_group_max_io,
       pool_max_io
FROM sys.dm_user_db_resource_governance
ORDER BY database_name;  

后续步骤