ALTER RESOURCE POOL (Transact-SQL)

更改现有资源调控器的资源池配置。

主题链接图标 Transact-SQL 语法约定。需要提供相关介绍信息。

语法

ALTER RESOURCE POOL { pool_name | "default" }
[WITH
     ( [ MIN_CPU_PERCENT = value ]
     [ [ , ] MAX_CPU_PERCENT = value ] 
     [ [ , ] CAP_CPU_PERCENT = value ] 
     [ [ , ] AFFINITY {SCHEDULER = AUTO | (Scheduler_range_spec) | NUMANODE = (NUMA_node_range_spec)}] 
     [ [ , ] MIN_MEMORY_PERCENT = value ]
     [ [ , ] MAX_MEMORY_PERCENT = value ] )
] 
[;]

Scheduler_range_spec::=
{SCHED_ID | SCHED_ID TO SCHED_ID}[,…n]
NUMA_node_range_spec::=
{NUMA_node_ID | NUMA_node_ID TO NUMA_node_ID}[,…n]

参数

  • { pool_name | "default" }
    是现有用户定义资源池或安装 SQL Server 2012 时创建的默认资源池的名称。

    与 ALTER RESOURCE POOL 一起使用时,"default" 必须用引号 ("") 引起来或用方括号 ([]) 括起来,以免与系统保留字 DEFAULT 冲突。 有关详细信息,请参阅数据库标识符

    注意注意

    预定义工作负荷组和资源池都使用小写名称,例如“default”。 对于使用区分大小写排序规则的服务器,应当注意这一点。 使用不区分大小写排序规则的服务器(例如 SQL_Latin1_General_CP1_CI_AS)会将“default”和“Default”视为相同。

  • MIN_CPU_PERCENT =value
    指定在出现 CPU 争用时资源池中的所有请求保证能接收的平均 CPU 带宽。 value 为整数,默认设置为 0。 value 的允许范围为 0 到 100。

  • MAX_CPU_PERCENT =value
    指定在存在 CPU 争用时资源池中的所有请求将接收的最大平均 CPU 带宽。 value 为整数,默认设置为 100。 value 的允许范围为 1 到 100。

  • CAP_CPU_PERCENT =value
    指定资源池中的所有请求都将收到的 CPU 带宽硬性上限。 将 CPU 最大带宽级别限制为与指定值相同。 value 为整数,默认设置为 100。 value 的允许范围为 1 到 100。

  • AFFINITY {SCHEDULER = AUTO | (Scheduler_range_spec) | NUMANODE = (NUMA_node_range_spec)}
    将资源池附加到特定的计划程序。 默认值为 AUTO。

    AFFINITY SCHEDULER = (Scheduler_range_spec) 将资源池映射到由给定 ID 标识的 SQL Server 计划。 这些 ID 将映射 sys.dm_os_schedulers (Transact-SQL) 的 scheduler_id 列中的值。

    当您使用 AFFINITY NAMANODE = (NUMA_node_range_spec) 时,资源池关联到映射到物理 CPU 的 SQL Server 计划程序,而这些 CPU 与给定的一个 NUMA 节点或一系列节点相对应。 您可以使用下面的 Transact-SQL 查询发现物理 NUMA 配置与 SQL Server 计划程序 ID 之间的映射。

    SELECT osn.memory_node_id AS [numa_node_id], sc.cpu_id, sc.scheduler_id
    FROM sys.dm_os_nodes AS osn
    INNER JOIN sys.dm_os_schedulers AS sc ON osn.node_id = sc.parent_node_id AND sc.scheduler_id < 1048576
    
  • MIN_MEMORY_PERCENT =value
    指定为此资源池保留的、不能与其他资源池共享的最小内存量。 value 为整数,默认设置为 0。 value 的允许范围为 0 到 100。

  • MAX_MEMORY_PERCENT =value
    指定此资源池中的请求可使用的总服务器内存量。 value 为整数,默认设置为 100。 value 的允许范围为 1 到 100。

注释

MAX_CPU_PERCENT 和 MAX_MEMORY_PERCENT 必须分别大于或等于 MIN_CPU_PERCENT 和 MIN_MEMORY_PERCENT。

CAP_CPU_PERCENT 不同于 MAX_CPU_PERCENT,这是因为与池关联的工作负荷可以使用 MAX_CPU_PERCENT 值之上的 CPU 容量(如果可用),但不能超过 CAP_CPU_PERCENT 的值。

每个关联组件(计划程序或 NUMA 节点)的总 CPU 百分比不应超过 100%。

建议您在熟悉资源调控器状态之后再执行 DDL 语句。 有关详细信息,请参阅资源调控器

权限

需要具有 CONTROL SERVER 权限。

示例

下面的示例保留了 default 池的所有默认资源池设置,只有 MAX_CPU_PERCENT 除外,该设置更改为 25。

ALTER RESOURCE POOL "default"
WITH
     ( MAX_CPU_PERCENT = 25)
GO
ALTER RESOURCE GOVERNOR RECONFIGURE
GO

在以下示例中,CAP_CPU_PERCENT 将硬性上限设置为 80%,并且 AFFINITY SCHEDULER 设置为单个值 8 以及 12 到 16 这个范围。

ALTER RESOURCE POOL Pool25
WITH( 
     MIN_CPU_PERCENT = 5,
     MAX_CPU_PERCENT = 10,     
     CAP_CPU_PERCENT = 80,
     AFFINITY SCHEDULER = (8, 12 TO 16), 
     MIN_MEMORY_PERCENT = 5,
     MAX_MEMORY_PERCENT = 15
);

GO
ALTER RESOURCE GOVERNOR RECONFIGURE
GO

请参阅

参考

CREATE RESOURCE POOL (Transact-SQL)

DROP RESOURCE POOL (Transact-SQL)

CREATE WORKLOAD GROUP (Transact-SQL)

ALTER WORKLOAD GROUP (Transact-SQL)

DROP WORKLOAD GROUP (Transact-SQL)

ALTER RESOURCE GOVERNOR (Transact-SQL)

概念

资源调控器