ALTER EXTERNAL RESOURCE POOL (Transact-SQL)
适用于: SQL Server 2016 (13.x) 及更高版本 Azure SQL 托管实例
更改一个 Resource Governor 外部池,该池用于指定外部进程可使用的资源。
对于 SQL Server 2016 (13.x) 中的 R 服务(数据库内),外部池控制 rterm.exe
、BxlServer.exe
及其生成的其他进程。
对于机器学习服务,外部池控制 rterm.exe
、python.exe
BxlServer.exe
及其生成的其他进程。
语法
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 ]
参数
{ 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