ALTER RESOURCE POOL (Transact-SQL)

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

Altera uma configuração do pool de recursos do Resource Governor existente no SQL Server.

Convenções de sintaxe de Transact-SQL

Sintaxe

ALTER RESOURCE POOL { pool_name | "default" }  
[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]  

Argumentos

{ pool_name | "default" }
É o nome de um pool de recursos definido pelo usuário existente ou do pool de recursos padrão criado quando o SQL Server é instalado.

"default" deve estar entre aspas duplas ("") ou colchetes ([]) quando usado com ALTER RESOURCE POOL para evitar conflito com DEFAULT, que é uma palavra reservada de sistema. Para obter mais informações, consulte Database Identifiers.

Observação

Os grupos de carga de trabalho predefinidos e os pools de recursos usam nomes de letras minúsculas, como "padrão". Isso deve ser levado em consideração nos servidores que usam ordenação com diferenciação de maiúsculas e minúsculas. Os servidores com ordenação sem diferenciação de maiúsculas e minúsculas, como SQL_Latin1_General_CP1_CI_AS, tratarão "default" e "Default" da mesma maneira.

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 do 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 a capacidade máxima da de CPU de destino para solicitações no pool de recursos. value é um inteiro com uma configuração padrão de 100. O intervalo permitido para value é de 1 a 100.

Observação

Devido à natureza estatística da governança de CPU, você poderá notar picos ocasionais que excedem o valor especificado em CAP_CPU_PERCENT.

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 o Agendador 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 seguinte consulta Transact-SQL 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.

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 esses casos, é recomendável definir o valor de MAX_IOPS_PER_VOLUME para esse pool para um número alto (por exemplo, o valor máximo 2^31-1) se você quiser que esse pool seja controlado para E/S.

Comentários

MAX_CPU_PERCENT e MAX_MEMORY_PERCENT devem ser maior que ou igual a MIN_CPU_PERCENT e MIN_MEMORY_PERCENT, respectivamente.

MAX_CPU_PERCENT poderá usar a capacidade da CPU acima do valor de MAX_CPU_PERCENT, se essa capacidade estiver disponível. Embora possa haver picos periódicos acima de CAP_CPU_PERCENT, as cargas de trabalho não devem exceder CAP_CPU_PERCENT por longos períodos de tempo, mesmo quando a capacidade de CPU adicional está disponível.

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

Ao executar instruções DDL, é recomendável estar familiarizado com os estados do Administrador de Recursos. Para obter mais informações, consulte Resource Governor.

Ao alterar um plano que afeta a configuração, a nova configuração só terá efeito nos planos armazenados em cache anteriormente após a execução de DBCC FREEPROCCACHE (pool_name), em que pool_name é o nome de um pool de recursos do Resource Governor.

  • Se você estiver alterando a AFFINITY de vários agendadores para um único agendador, a execução de DBCC FREEPROCCACHE não será necessária porque os planos paralelos podem ser executados em modo serial. No entanto, isso pode não ser tão eficiente quanto um plano compilado como um plano serial.

  • Se você estiver alterando a AFFINITY de um único agendador para vários agendadores, a execução de DBCC FREEPROCCACHE não será necessária. No entanto, os planos seriais não podem ser executados em paralelo, portanto, limpar o respectivo cache permitirá que novos planos sejam possivelmente compilados usando paralelismo.

Cuidado

A limpeza de planos armazenados em cache de um pool de recursos que está associado a mais de um grupo de carga de trabalho afetará todos os grupos de cargas de trabalho com o pool de recursos definido pelo usuário identificado por pool_name.

Permissões

Requer a permissão CONTROL SERVER.

Exemplos

O exemplo a seguir mantém todas as configurações padrão de pool de recursos no pool default, exceto para MAX_CPU_PERCENT, que é alterado para 25.

ALTER RESOURCE POOL "default"  
WITH  
     ( MAX_CPU_PERCENT = 25);  
GO  
ALTER RESOURCE GOVERNOR RECONFIGURE;  
GO  

No exemplo a seguir, o CAP_CPU_PERCENT define a extremidade rígida como 80% e AFFINITY SCHEDULER é definido como um valor individual 8 e um intervalo de 12 a 16.

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

ALTER RESOURCE POOL Pool25  
WITH(   
     MIN_CPU_PERCENT = 5,  
     MAX_CPU_PERCENT = 10,       
     CAP_CPU_PERCENT = 80,  
     AFFINITY SCHEDULER = (8, 12 TO 16),   
     MIN_MEMORY_PERCENT = 5,  
     MAX_MEMORY_PERCENT = 15  
);  
  
GO  
ALTER RESOURCE GOVERNOR RECONFIGURE;  
GO  

Consulte Também

Resource Governor
CREATE 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)