ALTER RESOURCE POOL (Transact-SQL)ALTER RESOURCE POOL (Transact-SQL)

ESTE TÓPICO APLICA-SE A:simSQL Server (a partir de 2008)nãoBanco de Dados SQL do Microsoft AzurenãoAzure SQL Data Warehouse nãoParallel Data Warehouse THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Altera uma configuração do pool de recursos do Administrador de Recursos existente no SQL ServerSQL Server.Changes an existing Resource Governor resource pool configuration in SQL ServerSQL Server.

Ícone de link do tópico Convenções da sintaxe Transact-SQL.Topic link icon Transact-SQL Syntax Conventions.

SintaxeSyntax

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]  

ArgumentosArguments

{ pool_name | "default" }{ 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 ServerSQL Server é instalado.Is the name of an existing user-defined resource pool or the default resource pool that is created when SQL ServerSQL Server is installed.

"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."default" must be enclosed by quotation marks ("") or brackets ([]) when used with ALTER RESOURCE POOL to avoid conflict with DEFAULT, which is a system reserved word. Para obter mais informações, consulte Database Identifiers.For more information, see 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".Predefined workload groups and resource pools all use lowercase names, such as "default". Isso deve ser levado em consideração nos servidores que usam agrupamento com diferenciação de maiúsculas e minúsculas.This should be taken into account for servers that use case-sensitive collation. Os servidores com agrupamento sem diferenciação de maiúsculas e minúsculas, como SQL_Latin1_General_CP1_CI_AS, tratarão "default" e "Default" da mesma maneira.Servers with case-insensitive collation, such as SQL_Latin1_General_CP1_CI_AS, will treat "default" and "Default" as the same.

MIN_CPU_PERCENT =valueMIN_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.Specifies the guaranteed average CPU bandwidth for all requests in the resource pool when there is CPU contention. value é um inteiro com uma configuração padrão de 0.value is an integer with a default setting of 0. O intervalo permitido para value é de 0 a 100.The allowed range for value is from 0 through 100.

MAX_CPU_PERCENT =valueMAX_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.Specifies the maximum average CPU bandwidth that all requests in the resource pool will receive when there is CPU contention. value é um inteiro com uma configuração padrão de 100.value is an integer with a default setting of 100. O intervalo permitido para value é de 1 a 100.The allowed range for value is from 1 through 100.

CAP_CPU_PERCENT =valueCAP_CPU_PERCENT =value
Aplica-se a: do SQL Server 2012 (11.x)SQL Server 2012 (11.x) ao SQL Server 2017SQL Server 2017.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017.

Especifica a capacidade máxima da de CPU de destino para solicitações no pool de recursos.Specifies the target maximum CPU capacity for requests in the resource pool. value é um inteiro com uma configuração padrão de 100.value is an integer with a default setting of 100. O intervalo permitido para value é de 1 a 100.The allowed range for value is from 1 through 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.Due to the statistical nature of CPU governance, you may notice occasional spikes exceeding the value specified in CAP_CPU_PERCENT.

AFFINITY {SCHEDULER = AUTO | (Scheduler_range_spec) | NUMANODE = (NUMA_node_range_spec)}AFFINITY {SCHEDULER = AUTO | (Scheduler_range_spec) | NUMANODE = (NUMA_node_range_spec)}
Aplica-se a: do SQL Server 2012 (11.x)SQL Server 2012 (11.x) ao SQL Server 2017SQL Server 2017.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017.

Anexe o pool de recursos a agendadores específicos.Attach the resource pool to specific schedulers. O valor padrão é AUTO.The default value is AUTO.

AFFINITY SCHEDULER = (Scheduler_range_spec) mapeia o pool de recursos para as agendas do SQL ServerSQL Server identificadas pelos IDs especificados.AFFINITY SCHEDULER = (Scheduler_range_spec) maps the resource pool to the SQL ServerSQL Server schedules identified by the given IDs. Essas IDs são mapeadas para os valores na coluna scheduler_id em sys.dm_os_schedulers (Transact-SQL).These IDs map to the values in the scheduler_id column in sys.dm_os_schedulers (Transact-SQL).

Quando você usar AFFINITY NAMANODE = (NUMA_node_range_spec), o pool de recursos terá uma afinidade com os agendadores do SQL ServerSQL Server mapeados para CPUs físicas que correspondem ao nó NUMA especificado ou ao intervalo de nós.When you use AFFINITY NAMANODE = (NUMA_node_range_spec), the resource pool is affinitized to the SQL ServerSQL Server schedulers that map to the physical CPUs that correspond to the given NUMA node or range of nodes. 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 ServerSQL Server.You can use the following Transact-SQL query to discover the mapping between the physical NUMA configuration and the SQL ServerSQL Server scheduler IDs.

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 =valueMIN_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.Specifies the minimum amount of memory reserved for this resource pool that can not be shared with other resource pools. value é um inteiro com uma configuração padrão de 0.value is an integer with a default setting of 0. O intervalo permitido para value é de 0 a 100.The allowed range for value is from 0 through 100.

MAX_MEMORY_PERCENT =valueMAX_MEMORY_PERCENT =value
Especifica a memória total de servidor que pode ser usada por solicitações nesse pool de recursos.Specifies the total server memory that can be used by requests in this resource pool. value é um inteiro com uma configuração padrão de 100.value is an integer with a default setting of 100. O intervalo permitido para value é de 1 a 100.The allowed range for value is from 1 through 100.

MIN_IOPS_PER_VOLUME =valueMIN_IOPS_PER_VOLUME =value
Aplica-se a: do SQL Server 2014 (12.x)SQL Server 2014 (12.x) ao SQL Server 2017SQL Server 2017.Applies to: SQL Server 2014 (12.x)SQL Server 2014 (12.x) through SQL Server 2017SQL Server 2017.

Especifica o mínimo de operações de E/S por segundo (IOPS) por volume de disco para reservar para o pool de recursos.Specifies the minimum I/O operations per second (IOPS) per disk volume to reserve for the resource pool. O intervalo permitido para value é de 0 a 2^31-1 (2.147.483.647).The allowed range for value is from 0 through 2^31-1 (2,147,483,647). Especifique 0 para indicar nenhum limite mínimo para o pool.Specify 0 to indicate no minimum threshold for the pool.

MAX_IOPS_PER_VOLUME =valueMAX_IOPS_PER_VOLUME =value
Aplica-se a: do SQL Server 2014 (12.x)SQL Server 2014 (12.x) ao SQL Server 2017SQL Server 2017.Applies to: SQL Server 2014 (12.x)SQL Server 2014 (12.x) through SQL Server 2017SQL Server 2017.

Especifica o máximo de operações de E/S por segundo (IOPS) por volume de disco para permitir para o pool de recursos.Specifies the maximum I/O operations per second (IOPS) per disk volume to allow for the resource pool. O intervalo permitido para value é de 0 a 2^31-1 (2.147.483.647).The allowed range for value is from 0 through 2^31-1 (2,147,483,647). Especifique 0 para definir um limite ilimitado para o pool.Specify 0 to set an unlimited threshold for the pool. O padrão é 0.The default is 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.If the MAX_IOPS_PER_VOLUME for a pool is set to 0, the pool is not governed at all and can take all the IOPS in the system even if other pools have MIN_IOPS_PER_VOLUME set. 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.For this case, we recommend that you set the MAX_IOPS_PER_VOLUME value for this pool to a high number (for example, the maximum value 2^31-1) if you want this pool to be governed for IO.

RemarksRemarks

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 and MAX_MEMORY_PERCENT must be greater than or equal to MIN_CPU_PERCENT and MIN_MEMORY_PERCENT, respectively.

MAX_CPU_PERCENT poderá usar a capacidade da CPU acima do valor de MAX_CPU_PERCENT, se essa capacidade estiver disponível.MAX_CPU_PERCENT can use CPU capacity above the value of MAX_CPU_PERCENT if it is available. 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.Although there may be periodic spikes above CAP_CPU_PERCENT, workloads should not exceed CAP_CPU_PERCENT for extended periods of time, even when additional CPU capacity is available.

A porcentagem total de CPU para cada componente de afinidade (agendador(es) ou nó(s) NUMA) não deve exceder 100%.The total CPU percentage for each affinitized component (scheduler(s) or NUMA node(s)) should not exceed 100%.

Ao executar instruções DDL, é recomendável estar familiarizado com os estados do Administrador de Recursos.When you are executing DDL statements, we recommend that you be familiar with Resource Governor states. Para obter mais informações, consulte Resource Governor.For more information, see 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.When changing a plan affecting setting, the new setting will only take effect in previously cached plans after executing DBCC FREEPROCCACHE (pool_name), where pool_name is the name of a Resource Governor resource pool.

  • 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.If you are changing AFFINITY from multiple schedulers to a single scheduler, executing DBCC FREEPROCCACHE is not required because parallel plans can run in serial mode. No entanto, isso pode não ser tão eficiente quanto um plano compilado como um plano serial.However, it may not be as efficient as a plan compiled as a serial plan.

  • 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.If you are changing AFFINITY from a single scheduler to multiple schedulers, executing DBCC FREEPROCCACHE is not required. 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.However, serial plans cannot run in parallel, so clearing the respective cache will allow new plans to potentially be compiled using parallelism.

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.Clearing cached plans from a resource pool that is associated with more than one workload group will affect all workload groups with the user-defined resource pool identified by pool_name.

PermissõesPermissions

Requer a permissão CONTROL SERVER.Requires CONTROL SERVER permission.

ExemplosExamples

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.The following example keeps all the default resource pool settings on the default pool except for MAX_CPU_PERCENT, which is changed to 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.In the following example, the CAP_CPU_PERCENT sets the hard cap to 80% and AFFINITY SCHEDULER is set to an individual value of 8 and a range of 12 to 16.

Aplica-se a: do SQL Server 2012 (11.x)SQL Server 2012 (11.x) ao SQL Server 2017SQL Server 2017.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017.

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émSee Also

Administrador de Recursos Resource Governor
CREATE RESOURCE POOL (Transact-SQL) CREATE RESOURCE POOL (Transact-SQL)
DROP RESOURCE POOL (Transact-SQL) DROP RESOURCE POOL (Transact-SQL)
CREATE WORKLOAD GROUP (Transact-SQL) CREATE WORKLOAD GROUP (Transact-SQL)
ALTER WORKLOAD GROUP (Transact-SQL) ALTER WORKLOAD GROUP (Transact-SQL)
DROP WORKLOAD GROUP (Transact-SQL) DROP WORKLOAD GROUP (Transact-SQL)
ALTER RESOURCE GOVERNOR (Transact-SQL)ALTER RESOURCE GOVERNOR (Transact-SQL)