CREATE RESOURCE POOL (Transact-SQL)

Aplica-se a:SQL ServerInstância Gerenciada de SQL do Azure

Cria um pool de recursos do Administrador de Recursos no SQL Server. Um pool de recursos representa um subconjunto dos recursos físicos (memória, CPUs e E/S) de uma instância do Mecanismo de Banco de Dados. O Administrador de Recursos permite que um administrador de banco de dados distribua recursos de servidor entre pools de recursos, até um máximo de 64 pools. O Administrador de Recursos não está disponível em todas as edições do SQL Server. Para obter uma lista de recursos com suporte nas edições do SQL Server, consulte Recursos com suporte nas edições do SQL Server 2016.

Convenções de sintaxe de Transact-SQL

Sintaxe

CREATE RESOURCE POOL pool_name  
[ WITH  
    (  
        [ MIN_CPU_PERCENT = value ]  
        [ [ , ] MAX_CPU_PERCENT = value ]   
        [ [ , ] CAP_CPU_PERCENT = value ]   
        [ [ , ] AFFINITY {SCHEDULER =  
                  AUTO 
                | ( <scheduler_range_spec> )   
                | NUMANODE = ( <NUMA_node_range_spec> )
                } ]   
        [ [ , ] MIN_MEMORY_PERCENT = value ]  
        [ [ , ] MAX_MEMORY_PERCENT = value ]  
        [ [ , ] MIN_IOPS_PER_VOLUME = value ]  
        [ [ , ] MAX_IOPS_PER_VOLUME = value ]  
    )   
]  
[;]  
  
<scheduler_range_spec> ::=  
{ SCHED_ID | SCHED_ID TO SCHED_ID }[,...n]  
  
<NUMA_node_range_spec> ::=  
{ NUMA_node_ID | NUMA_node_ID TO NUMA_node_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. pool_name é alfanumérico, pode ter até 128 caracteres, deve ser exclusivo dentro de uma instância do SQL Server e deve obedecer às regras de identificadores.

MIN_CPU_PERCENT =value
Especifica a média de largura de banda de CPU garantida para todas as solicitações no pool de recursos quando houver contenção de CPU. value é um inteiro com uma configuração padrão de 0. O intervalo permitido para value é de 0 a 100.

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

CAP_CPU_PERCENT =value
Aplica-se a: SQL Server 2012 (11.x) e posterior.

Especifica uma extremidade rígida na largura de banda de CPU que todas as solicitações no pool de recursos receberão. Limita o nível de largura de banda de CPU máxima para que ele seja igual ao valor especificado. value é um inteiro com uma configuração padrão de 100. O intervalo permitido para value é de 1 a 100.

AFFINITY {SCHEDULER = AUTO | ( <scheduler_range_spec> ) | NUMANODE = (<NUMA_node_range_spec>)}
Aplica-se a: SQL Server 2012 (11.x) e posterior.

Anexe o pool de recursos a agendadores específicos. O valor padrão é AUTO.

AFFINITY SCHEDULER = (<scheduler_range_spec>) mapeia o pool de recursos para as agendas do SQL Server identificadas pelas IDs especificadas. Essas IDs mapeiam para os valores na coluna scheduler_id no sys.dm_os_schedulers (Transact-SQL).

Quando você usa AFFINITY NUMANODE = (<NUMA_node_range_spec>), o pool de recursos é agrupado com os agendadores do SQL Server que são mapeados para as CPUs físicas que correspondem ao nó NUMA ou ao intervalo de nós fornecido. Você pode usar a consulta Transact-SQL a seguir para descobrir o mapeamento entre a configuração NUMA física e as IDs de agendador do SQL Server.

SELECT osn.memory_node_id AS [numa_node_id], sc.cpu_id, sc.scheduler_id  
FROM sys.dm_os_nodes AS osn  
INNER JOIN sys.dm_os_schedulers AS sc   
    ON osn.node_id = sc.parent_node_id   
    AND sc.scheduler_id < 1048576;  

MIN_MEMORY_PERCENT =value
Especifica a quantidade mínima de memória reservada para esse pool de recursos que não pode ser compartilhada com outros pools de recursos. value é um inteiro com uma configuração padrão de 0. O intervalo permitido para value é de 0 a 100.

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

MIN_IOPS_PER_VOLUME =value
Aplica-se a: SQL Server 2014 (12.x) e posterior.

Especifica o mínimo de operações de E/S por segundo (IOPS) por volume de disco para reservar para o pool de recursos. O intervalo permitido para value é de 0 a 2^31-1 (2.147.483.647). Especifique 0 para indicar nenhum limite mínimo para o pool. O padrão é 0.

MAX_IOPS_PER_VOLUME =value
Aplica-se a: SQL Server 2014 (12.x) e posterior.

Especifica o máximo de operações de E/S por segundo (IOPS) por volume de disco para permitir para o pool de recursos. O intervalo permitido para value é de 0 a 2^31-1 (2.147.483.647). Especifique 0 para definir um limite ilimitado para o pool. O padrão é 0.

Se o MAX_IOPS_PER_VOLUME para um pool for definido como 0, o pool não será controlado e pode utilizar todos os IOPS no sistema mesmo se outros pools tiverem MIN_IOPS_PER_VOLUME definido. Para esse caso, é recomendável definir o valor de MAX_IOPS_PER_VOLUME desse pool para um número alto (por exemplo, o valor máximo 2^31-1) se quiser que esse pool seja controlado para E/S.

Comentários

MIN_IOPS_PER_VOLUME e MAX_IOPS_PER_VOLUME especificam as leituras ou gravações mínimas e máximas por segundo. Essas leituras ou gravações podem ser de qualquer tamanho e não indicam a taxa de transferência mínima ou máxima.

Os valores para MAX_CPU_PERCENT e MAX_MEMORY_PERCENT devem ser maiores que ou iguais aos valores para MIN_CPU_PERCENT e MIN_MEMORY_PERCENT, respectivamente.

CAP_CPU_PERCENT difere de MAX_CPU_PERCENT no fato de as cargas de trabalho associadas com o pool poderem usar a capacidade da CPU acima do valor de MAX_CPU_PERCENT quando ela está disponível, mas não acima do valor de CAP_CPU_PERCENT.

A porcentagem total de CPU para cada componente de afinidade (agendador(es) ou nó(s) NUMA) não deve exceder 100%.

Permissões

Requer a permissão CONTROL SERVER.

Exemplos

1. Mostra como criar um pool de recursos

Este exemplo criou um pool de recursos denominado "bigPool". Esse pool usa as definições padrão do Administrador de Recursos.

CREATE RESOURCE POOL bigPool;  
GO  
ALTER RESOURCE GOVERNOR RECONFIGURE;  
GO  

2. Definir o CAP_CPU_PERCENT como um limite rígido e definir AFFINITY SCHEDULER

Definir o CAP_CPU_PERCENT para um limite rígido de 30 por cento e define AFFINITY SCHEDULER para um intervalo de 0 a 63, de 128 a 191.

Aplica-se a: SQL Server 2012 (11.x) e posterior.

CREATE RESOURCE POOL PoolAdmin  
WITH (  
     MIN_CPU_PERCENT = 10,  
     MAX_CPU_PERCENT = 20,  
     CAP_CPU_PERCENT = 30,  
     AFFINITY SCHEDULER = (0 TO 63, 128 TO 191),  
     MIN_MEMORY_PERCENT = 5,  
     MAX_MEMORY_PERCENT = 15  
      );  

3. Definir MIN_IOPS_PER_VOLUME e MAX_IOPS_PER_VOLUME

Definir MIN_IOPS_PER_VOLUME para 20 e MAX_IOPS_PER_VOLUME para 100. Esses valores controlam as operações de leitura e gravação de E/S física que estão disponíveis para o pool de recursos.

Aplica-se a: SQL Server 2014 (12.x) e posterior.

CREATE RESOURCE POOL PoolAdmin  
WITH (  
    MIN_IOPS_PER_VOLUME = 20,  
    MAX_IOPS_PER_VOLUME = 100  
      );  

Consulte Também

ALTER RESOURCE POOL (Transact-SQL)
DROP RESOURCE POOL (Transact-SQL)
CREATE WORKLOAD GROUP (Transact-SQL)
ALTER WORKLOAD GROUP (Transact-SQL)
DROP WORKLOAD GROUP (Transact-SQL)
ALTER RESOURCE GOVERNOR (Transact-SQL)
Pool de recursos do Resource Governor
Criar um pool de recursos