CREATE EXTERNAL RESOURCE POOL (Transact-SQL)

Aplica-se a: SQL Server 2016 (13.x) e versões posteriores

Cria um pool externo para definir recursos para processos externos. Um pool de recursos representa um subconjunto dos recursos físicos (memória e CPUs) de uma instância do Mecanismo de Banco de Dados. O Resource Governor pode distribuir recursos de servidor entre pools de recursos até um máximo de 64 pools.

Para R Services (no banco de dados) no SQL Server 2016 (13.x), o pool externo controla rterm.exe, BxlServer.exe e outros processos gerados por eles.

Para Serviços de Machine Learning, o pool externo controla rterm.exe, python.exe, BxlServer.exe e outros processos gerados por eles.

Convenções de sintaxe de Transact-SQL

Sintaxe

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 ]  

Observação

Para exibir a sintaxe do Transact-SQL para o SQL Server 2014 (12.x) e versões anteriores, confira a Documentação das versões anteriores.

Argumentos

pool_name
É o nome definido pelo usuário para o pool de recursos externo. pool_name é alfanumérico e pode ter até 128 caracteres. Esse argumento deve ser exclusivo dentro de uma instância do SQL Server e deve estar de acordo com as regras para identificadores.

MAX_CPU_PERCENT =value
A largura de banda média máxima da CPU para todas as solicitações que o pool de recursos externo poderá receber quando houver uma contenção de CPU. value é um inteiro. O intervalo permitido para value é de 1 a 100.

MAX_MEMORY_PERCENT =value
Especifica a memória total de servidor que pode ser usada por solicitações nesse pool de recursos externos. value é um inteiro. O intervalo permitido para value é de 1 a 100.

MAX_PROCESSES =value
O número máximo de processos permitidos para o pool de recursos externo. 0 = um limite ilimitado para o pool, que é associado posteriormente apenas pelos recursos do computador.

MAX_CPU_PERCENT =value
A largura de banda média máxima da CPU para todas as solicitações que o pool de recursos externo poderá receber quando houver uma contenção de CPU. value é um inteiro. O intervalo permitido para value é de 1 a 100.

AFFINITY {CPU = AUTO | ( <CPU_range_spec>) | NUMANODE = (<NUMA_node_range_spec>)} Anexe o pool de recursos externos a CPUs específicas.

AFFINITY CPU = (<CPU_range_spec>) mapeia o pool de recursos externos para as CPUs do SQL Server identificadas pelas CPU_IDs fornecidas.

Quando você usa AFFINITY NUMANODE = **(<NUMA_node_range_spec>), o pool de recursos externo é relacionado por afinidade com as CPUs físicas do SQL Server que correspondem ao nó NUMA ou ao intervalo de nós fornecido.

MAX_MEMORY_PERCENT =value
Especifica a memória total de servidor que pode ser usada por solicitações nesse pool de recursos externos. value é um inteiro. O intervalo permitido para value é de 1 a 100.

MAX_PROCESSES =value
O número máximo de processos permitidos para o pool de recursos externo. 0 = um limite ilimitado para o pool, que é associado posteriormente apenas pelos recursos do computador.

Comentários

O Mecanismo de Banco de Dados implementa o pool de recursos quando você executa a instrução ALTER RESOURCE GOVERNOR RECONFIGURE.

Para obter informações gerais sobre pools de recursos, confira Pool de recursos do Resource Governor, sys.resource_governor_external_resource_pools (Transact-SQL) e sys.dm_resource_governor_external_resource_pool_affinity (Transact-SQL).

Para obter informações específicas ao gerenciamento de pools de recursos externos usado para o aprendizado de máquina, confira Governança de recursos para o aprendizado de máquina no SQL Server.

Permissões

Requer a permissão CONTROL SERVER.

Exemplos

O pool externo restringiu o uso da CPU a 75%. O máximo de memória é de 30% da memória disponível no computador.

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

Confira também