CREATE EXTERNAL RESOURCE POOL (Transact-SQL)

适用于: SQL Server 2016 (13.x) 及更高版本

创建用于定义外部进程资源的外部池。 资源池表示数据库引擎实例的物理资源(内存和 CPU)的子集。 资源调控器可以在多个资源池之间分发服务器资源,最多可为 64 个池。

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

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

Transact-SQL 语法约定

语法

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

另请参阅