sys.dm_user_db_resource_governance (Transact-SQL)
适用于:SQL Server Azure SQL 数据库 Azure Synapse Analytics Platform System (PDW)
返回当前数据库或弹性池中资源治理机制使用的实际配置和容量设置。
对于单一数据库,返回当前数据库的单个行。 对于弹性池,为调用方持有VIEW DATABASE STATE
或权限的每个数据库返回一行;如果调用方持有VIEW SERVER STATE
或VIEW DATABASE PERFORMANCE STATE
VIEW 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 数据库基本、S0 和 S1 服务目标以及弹性池中的数据库、服务器管理员帐户、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;
后续步骤
- 资源调控器
- sys.dm_resource_governor_resource_pools (Transact-SQL)
- sys.dm_resource_governor_workload_groups (Transact-SQL)
- sys.dm_resource_governor_resource_pools_history_ex (Transact-SQL)
- sys.dm_resource_governor_workload_groups_history_ex(Azure SQL 数据库)
- 事务日志速率治理
- 单一数据库 DTU 资源限制
- 单一数据库 vCore 资源限制
- 弹性池 vCore 资源限制