CREATE EXTERNAL RESOURCE POOL (Transact-SQL)
适用于: SQL Server 2016 (13.x) 及更高版本
创建用于定义外部进程资源的外部池。 资源池表示数据库引擎实例的物理资源(内存和 CPU)的子集。 资源调控器可以在多个资源池之间分发服务器资源,最多可为 64 个池。
对于 SQL Server 2016 (13.x) 中的 R 服务(数据库内),外部池控制 rterm.exe
、BxlServer.exe
及其生成的其他进程。
对于机器学习服务,外部池控制 rterm.exe
、python.exe
BxlServer.exe
及其生成的其他进程。
语法
CREATE EXTERNAL RESOURCE POOL pool_name
[ WITH (
[ MAX_CPU_PERCENT = value ]
[ [ , ] MAX_MEMORY_PERCENT = value ]
[ [ , ] MAX_PROCESSES = value ]
)
]
[ ; ]
<CPU_range_spec> ::=
{ CPU_ID | CPU_ID TO CPU_ID } [ ,...n ]
CREATE EXTERNAL RESOURCE POOL pool_name
[ 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
外部资源池的用户定义名称。 pool_name 是字母数字,最多可包含 128 个字符。 此参数在 SQL Server 的实例中必须是唯一的,并且必须符合标识符的规则。
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 使用率限制为 75%。 最大内存为计算机上可用内存的 30%。
CREATE EXTERNAL RESOURCE POOL ep_1
WITH (
MAX_CPU_PERCENT = 75
, MAX_MEMORY_PERCENT = 30
);
GO
ALTER RESOURCE GOVERNOR RECONFIGURE;
GO
CREATE EXTERNAL RESOURCE POOL ep_1
WITH (
MAX_CPU_PERCENT = 75
, AFFINITY CPU = AUTO
, MAX_MEMORY_PERCENT = 30
);
GO
ALTER RESOURCE GOVERNOR RECONFIGURE;
GO
另请参阅
- “已启用外部脚本”服务器配置选项
- sp_execute_external_script (Transact-SQL)
- ALTER EXTERNAL RESOURCE POOL (Transact-SQL)
- DROP EXTERNAL RESOURCE POOL (Transact-SQL)
- CREATE RESOURCE POOL (Transact-SQL)
- CREATE WORKLOAD GROUP (Transact-SQL)
- 资源调控器资源池
- sys.resource_governor_external_resource_pools (Transact-SQL)
- sys.dm_resource_governor_external_resource_pool_affinity (Transact-SQL)
- ALTER RESOURCE GOVERNOR (Transact-SQL)