ALTERAR POOL DE RECURSOS (Transact-SQL)
Aplica-se a:SQL ServerAzure SQL Managed Instance
Altera uma configuração existente do administrador de recursos pool de recursos para uma instância do Mecanismo de Banco de Dados.
Observação
Para a Instância Gerenciada SQL do Azure, você deve estar no contexto do banco de dados master
para modificar a configuração do administrador de recursos.
Transact-SQL convenções de sintaxe
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 | [padrão] }
É o nome de um pool de recursos definido pelo usuário existente ou o pool de recursos default
interno.
default
deve estar entre parênteses ([]
) ou aspas (""
) quando usado com ALTER RESOURCE POOL
para evitar um conflito com DEFAULT
, que é uma palavra reservada do sistema. Para obter mais informações, consulte Identificadores de banco de dados.
Pools de recursos internos e grupos de carga de trabalho usam todos os nomes minúsculos, como default
. Use a default
minúscula em servidores que usam um agrupamento que diferencia maiúsculas de minúsculas. Os servidores com agrupamento que não diferencia maiúsculas de minúsculas tratam default
, Default
e DEFAULT
como o mesmo valor.
MIN_CPU_PERCENT = valor
Especifica a largura de banda média garantida da CPU para todas as solicitações no pool de recursos quando há contenção de CPU. valor é um inteiro com uma configuração padrão de 0. O intervalo permitido para valor é de 0 a 100.
MAX_CPU_PERCENT = valor
Especifica a largura de banda média máxima da CPU que todas as solicitações no pool de recursos recebem quando há contenção de CPU. valor é um inteiro com uma configuração padrão de 100. O intervalo permitido para valor é de 1 a 100.
CAP_CPU_PERCENT = valor
Aplica-se a: SQL Server 2012 (11.x) e posterior.
Especifica um limite rígido na largura de banda da CPU que todas as solicitações no pool de recursos recebem. Limita o nível máximo de largura de banda da CPU a ser o mesmo que o valor especificado. valor é um inteiro com uma configuração padrão de 100. O intervalo permitido para valor é de 1 a 100.
Observação
Devido à natureza estatística da governança da CPU, você pode notar picos curtos ocasionais excedendo o valor especificado em CAP_CPU_PERCENT
.
AFFINIDADE {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
.
A especificação de <scheduler_range_spec>
para AFFINITY SCHEDULER
afilia o pool de recursos aos agendadores do Mecanismo de Banco de Dados identificados pelas IDs fornecidas. Esses IDs são mapeados para os valores na coluna scheduler_id
no sys.dm_os_schedulers.
A especificação de <NUMA_node_range_spec>
para AFFINITY NUMANODE
afilia o pool de recursos aos agendadores do Mecanismo de Banco de Dados que mapeiam para as CPUs lógicas que correspondem a determinado nó NUMA ou a um intervalo de nós. Você pode usar a seguinte consulta Transact-SQL para descobrir o mapeamento entre a configuração física do NUMA e os IDs do agendador do Mecanismo de Banco de Dados.
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 = valor
Especifica a quantidade mínima de memória do espaço de trabalho de consulta reservada para o pool de recursos que não pode ser compartilhada com outros pools de recursos. valor é um inteiro com uma configuração padrão de 0. O intervalo permitido para valor é de 0 a 100.
MAX_MEMORY_PERCENT = valor
Especifica a quantidade máxima de memória do espaço de trabalho de consulta que as solicitações neste pool de recursos podem usar. valor é um inteiro com uma configuração padrão de 100. O intervalo permitido para valor é de 1 a 100.
MIN_IOPS_PER_VOLUME = valor
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 a ser reservado para o pool de recursos. O intervalo permitido para valor é de 0 a 2^31-1 (2.147.483.647). Especifique 0 para indicar que não há mínimo para o pool. O padrão é 0.
MAX_IOPS_PER_VOLUME = valor
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 o pool de recursos. O intervalo permitido para valor é de 0 a 2^31-1 (2.147.483.647). Especifique 0 para remover um limite de IOPS para o pool. O padrão é 0.
Se o MAX_IOPS_PER_VOLUME
de um pool estiver definido como 0, o pool não será controlado por E/S e poderá receber todas as IOPS do sistema, mesmo que outros pools tenham MIN_IOPS_PER_VOLUME
definidos. Nesse caso, recomendamos que você defina o valor de MAX_IOPS_PER_VOLUME
para esse pool como um número alto (por exemplo, o valor máximo 2^31-1) para tornar esse pool controlado por IO e honrar as reservas de IOPS que possam existir para outros pools.
Comentários
A soma de MIN_CPU_PERCENT
ou MIN_MEMORY_PERCENT
para todos os pools de recursos não pode exceder 100%.
MIN_IOPS_PER_VOLUME
e MAX_IOPS_PER_VOLUME
especificar o mínimo e o máximo de OI por segundo. Os IOs podem ser lidos ou gravados e podem ser de qualquer tamanho. Portanto, com os mesmos limites de IOPS, a taxa de transferência mínima e máxima de E/S pode variar dependendo da combinação de tamanhos de E/S na carga de trabalho.
Os valores de MAX_CPU_PERCENT
e MAX_MEMORY_PERCENT
devem ser maiores ou iguais aos valores de MIN_CPU_PERCENT
e MIN_MEMORY_PERCENT
, respectivamente.
CAP_CPU_PERCENT
difere de MAX_CPU_PERCENT
porque as cargas de trabalho associadas ao pool podem usar a capacidade da CPU acima do valor de MAX_CPU_PERCENT
se estiver disponível, mas não acima do valor de CAP_CPU_PERCENT
. Embora possa haver picos curtos superiores a CAP_CPU_PERCENT
, as cargas de trabalho não podem exceder CAP_CPU_PERCENT
por longos períodos de tempo, mesmo quando a capacidade adicional da CPU está disponível.
A porcentagem total de CPU para cada componente afinitizado (agendador(es) ou nó(s) NUMA(s)) não pode exceder 100%.
Para obter mais informações, consulte do Administrador de Recursos e Pool de recursos do Administrador de Recursos.
Planos armazenados em cache
Quando você altera um plano que afeta a configuração, a nova configuração entra em vigor em planos armazenados anteriormente em cache somente depois de executar DBCC FREEPROCCACHE (<pool_name>)
, onde <pool_name>
é o nome de um pool de recursos do administrador de recursos.
- Se você estiver alterando
AFFINITY
de vários agendadores para um único agendador, executarDBCC FREEPROCCACHE
não é necessário porque os planos paralelos podem ser executados no modo serial. No entanto, tal plano pode ser menos eficiente do que um plano compilado como um plano serial. - Se você estiver alterando
AFFINITY
de um único agendador para vários agendadores, executarDBCC FREEPROCCACHE
não será necessário. No entanto, os planos seriais não podem ser executados em paralelo, portanto, limpar o respetivo cache permite que novos planos sejam potencialmente compilados usando paralelismo.
Advertência
A limpeza de planos armazenados em cache de um pool de recursos associado a mais de um grupo de carga de trabalho afeta todos os grupos de carga de trabalho usando o pool de recursos definido pelo usuário identificado por <pool_name>
.
Permissões
Requer a permissão de CONTROL SERVER
.
Exemplos
O exemplo a seguir mantém todas as configurações atuais do pool de recursos para o pool de default
, exceto para MAX_CPU_PERCENT
, que é alterado para 25%.
ALTER RESOURCE POOL [default] WITH (MAX_CPU_PERCENT = 25);
ALTER RESOURCE GOVERNOR RECONFIGURE;
O exemplo a seguir modifica o pool de recursos adhocPool
da seguinte maneira:
- Reservas 10% da CPU e 5% da memória do espaço de trabalho de consulta usando
MIN_CPU_PERCENT
eMIN_MEMORY_PERCENT
respectivamente. - Define um limite de memória do espaço de trabalho de consulta de 15% usando
MAX_MEMORY_PERCENT
. - Define um limite de CPU flexível de 20% e um limite de CPU de 30% usando
MAX_CPU_PERCENT
eCAP_CPU_PERCENT
respectivamente. - Afinitiza o pool para dois intervalos de CPUs lógicas (0 a 63 e 128 a 191) usando
AFFINITY SCHEDULER
.
Aplica-se a: SQL Server 2012 (11.x) e posterior.
ALTER RESOURCE POOL adhocPool
WITH (
MIN_CPU_PERCENT = 10,
MAX_CPU_PERCENT = 20,
CAP_CPU_PERCENT = 30,
MIN_MEMORY_PERCENT = 5,
MAX_MEMORY_PERCENT = 15,
AFFINITY SCHEDULER = (0 TO 63, 128 TO 191)
);
ALTER RESOURCE GOVERNOR RECONFIGURE;
Conteúdo relacionado
- Administrador de recursos
- Pool de recursos do Administrador de recursos
- Alterar as configurações do pool de recursos
- CRIAR POOL DE RECURSOS
- DESCARTAR POOL DE RECURSOS
- CRIAR GRUPO DE CARGA DE TRABALHO
- ALTERAM O GRUPO DE CARGA DE TRABALHO
- GRUPO DE CARGA DE TRABALHO DE QUEDA
- ALTERAR O ADMINISTRADOR DE RECURSOS