ALTER EXTERNAL RESOURCE POOL (Transact-SQL)

适用于: SQL Server 2016 (13.x) 及更高版本 Azure SQL 托管实例

更改一个 Resource Governor 外部池,该池用于指定外部进程可使用的资源。

对于 SQL Server 2016 (13.x) 中的 R 服务(数据库内),外部池控制 rterm.exeBxlServer.exe 及其生成的其他进程。

对于机器学习服务,外部池控制 rterm.exepython.exeBxlServer.exe 及其生成的其他进程。

Transact-SQL 语法约定

语法

ALTER EXTERNAL RESOURCE POOL { pool_name | "default" }
[ WITH (
    [ MAX_CPU_PERCENT = value ]
    [ [ , ] MAX_MEMORY_PERCENT = value ]
    [ [ , ] MAX_PROCESSES = value ]
    )
]
[ ; ]

<CPU_range_spec> ::=
{ CPU_ID | CPU_ID  TO CPU_ID } [ ,...n ]

ALTER EXTERNAL RESOURCE POOL { pool_name | "default" }
[ WITH (
   [ MAX_CPU_PERCENT = value ]
   [ [ , ] AFFINITY CPU =
           {
               AUTO
             | ( <cpu_range_spec> )
             | NUMANODE = (( <NUMA_node_id> )
           } ]   
   [ [ , ] MAX_MEMORY_PERCENT = value ]
   [ [ , ] MAX_PROCESSES = value ]
   )
]
[ ; ]

<CPU_range_spec> ::=
{ CPU_ID | CPU_ID  TO CPU_ID } [ ,...n ]

注意

若要查看 SQL Server 2014 (12.x) 及更早版本的 Transact-SQL 语法,请参阅早期版本文档

参数

{ pool_name | "default" }
现有用户定义外部资源池或安装 SQL Server 时创建的默认外部资源池的名称。 与 ALTER EXTERNAL RESOURCE POOL 一起使用时,"default" 必须用引号 ("") 引起来或用方括号 ([]) 括起来,以免与系统保留字 DEFAULT 冲突。

MAX_CPU_PERCENT =value
指定在存在 CPU 争用时外部资源池中的所有请求可以接收的最大平均 CPU 带宽。 value 是一个整数。 value 的允许范围是 1 到 100。

MAX_MEMORY_PERCENT =value
指定此外部资源池中的请求可使用的总服务器内存量。 value 是一个整数。 value 的允许范围是 1 到 100。

MAX_PROCESSES =value
指定外部资源池允许的最大进程数。 指定 0 以便为池设置无限阈值,此阈值之后仅受计算机资源约束。

MAX_CPU_PERCENT =value
指定在存在 CPU 争用时外部资源池中的所有请求可以接收的最大平均 CPU 带宽。 value 是一个整数。 value 的允许范围是 1 到 100。

AFFINITY {CPU = AUTO | ( <CPU_range_spec> ) | NUMANODE = (<NUMA_node_range_spec>)}
将外部资源池附加到特定的 CPU。

AFFINITY CPU = (<CPU_range_spec>) 将外部资源池映射到由给定 CPU_ID 标识的 SQL Server CPU。 使用 AFFINITY NUMANODE = (<NUMA_node_range_spec>) 时,会将外部资源池关联到对应于给定 NUMA 节点或节点范围的 SQL Server 物理 CPU。

MAX_MEMORY_PERCENT =value
指定此外部资源池中的请求可使用的总服务器内存量。 value 是一个整数。 value 的允许范围是 1 到 100。

MAX_PROCESSES =value
指定外部资源池允许的最大进程数。 指定 0 以便为池设置无限阈值,此阈值之后仅受计算机资源约束。

备注

执行 ALTER RESOURCE GOVERNOR RECONFIGURE 语句时,数据库引擎实现资源池。

有关资源池的常规信息,请参阅 Resource Governor 资源池sys.resource_governor_external_resource_pools (Transact-SQL)sys.dm_resource_governor_external_resource_pool_affinity (Transact-SQL)

有关使用外部资源池管理机器学习作业的特定信息,请参阅 SQL Server 中机器学习的资源调控

权限

需要 CONTROL SERVER 权限。

示例

以下语句更改外部池,将 CPU 使用率限制为 50% 并将最大内存限制为计算机可用内存的 25%。

ALTER EXTERNAL RESOURCE POOL ep_1
WITH (
    MAX_CPU_PERCENT = 50
    , MAX_MEMORY_PERCENT = 25
);
GO
ALTER RESOURCE GOVERNOR RECONFIGURE;
GO
ALTER EXTERNAL RESOURCE POOL ep_1
WITH (
    MAX_CPU_PERCENT = 50
    , AFFINITY CPU = AUTO
    , MAX_MEMORY_PERCENT = 25
);
GO
ALTER RESOURCE GOVERNOR RECONFIGURE;
GO

另请参阅