CREATE RESOURCE POOL (Transact-SQL)
Aplica-se a:SQL ServerInstância Gerenciada de SQL do Azure
Cria um pool de recursos de do administrador de recursos. Um pool de recursos representa um subconjunto dos recursos físicos (CPU, memória e E/S) de uma instância do Mecanismo de Banco de Dados. O administrador de recursos permite que você reserve ou limite 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 compatíveis com as edições do SQL Server, consulte Editions e recursos com suporte do SQL Server 2022.
Nota
Para a Instância Gerenciada de SQL do Azure, você deve estar no contexto do banco de dados master
para modificar a configuração do administrador de recursos.
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]
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 em uma instância do Mecanismo de Banco de Dados e deve estar em conformidade com as regras para identificadores de banco de dados.
MIN_CPU_PERCENT = de valor
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 = de 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. value é um inteiro com uma configuração padrão de 100. O intervalo permitido para value é 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 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.
Nota
Devido à natureza estatística da governança da CPU, você pode notar picos curtos 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
.
Especificar <scheduler_range_spec>
para AFFINITY SCHEDULER
afinidades do pool de recursos com os agendadores do Mecanismo de Banco de Dados identificados pelas IDs fornecidas. Essas IDs são mapeadas para os valores na coluna scheduler_id
em sys.dm_os_schedulers.
Especificar <NUMA_node_range_spec>
para AFFINITY NUMANODE
afinidades do pool de recursos com os agendadores do Mecanismo de Banco de Dados que são mapeados para as CPUs lógicas que correspondem ao nó NUMA fornecido ou a um intervalo de nós. Você pode usar a consulta Transact-SQL a seguir para descobrir o mapeamento entre a configuração numa física e as 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 = de valor
Especifica a quantidade mínima de memória do workspace de consulta reservada para o pool de recursos que não pode ser compartilhado com outros pools de recursos. value é um inteiro com uma configuração padrão de 0. O intervalo permitido para valor é de 0 a 100.
MAX_MEMORY_PERCENT = de valor
Especifica a quantidade máxima de memória do workspace de consulta que as solicitações neste pool de recursos podem usar. value é um inteiro com uma configuração padrão de 100. O intervalo permitido para value é de 1 a 100.
MIN_IOPS_PER_VOLUME = de 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 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 mínimo para o pool. O padrão é 0.
MAX_IOPS_PER_VOLUME = de 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 para o pool de recursos. O intervalo permitido para value é 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 for definido como 0, o pool não será regido por E/S e poderá usar todas as IOPS no sistema mesmo que outros pools tenham MIN_IOPS_PER_VOLUME
definido. Para esse caso, recomendamos que você defina o valor 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 regido por E/S e honrar as reservas de IOPS que podem 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 os EOs mínimos e máximos por segundo. Os IOs podem ser leituras ou gravações 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 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
. Embora possa haver picos curtos maiores que CAP_CPU_PERCENT
, as cargas de trabalho não podem exceder CAP_CPU_PERCENT
por longos períodos de tempo, mesmo quando há capacidade adicional de CPU disponível.
O percentual total de CPU para cada componente afinidade (agendador(s) ou nó 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.
Permissões
Requer a permissão CONTROL SERVER
.
Exemplos
Para obter exemplos adicionais de configuração do administrador de recursos, consulte Exemplos de configuração do administrador de recursos e práticas recomendadas.
Criar um pool de recursos
Este exemplo criou um pool de recursos chamado bigPool
. Esse pool usa as configurações de administrador de recursos padrão.
CREATE RESOURCE POOL bigPool;
ALTER RESOURCE GOVERNOR RECONFIGURE;
Definir limites e reservas de CPU e memória
Este exemplo configura o pool de recursos adhocPool
da seguinte maneira:
- Reserva 10% da CPU e 5% da memória do workspace de consulta usando
MIN_CPU_PERCENT
eMIN_MEMORY_PERCENT
respectivamente. - Define um limite de memória de workspace de consulta de 15% usando
MAX_MEMORY_PERCENT
. - Define um limite de CPU flexível de 20% um limite de CPU rígido de 30% usando
MAX_CPU_PERCENT
eCAP_CPU_PERCENT
respectivamente. - Afinidade o pool a 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.
CREATE 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)
);
Definir a reserva e o limite do IOPS
Este exemplo reserva 200 IOPS por volume para o pool usando MIN_IOPS_PER_VOLUME
e limita o IOPS por volume a 1000 usando MAX_IOPS_PER_VOLUME
. Esses valores regem o total de operações físicas de leitura e gravação de E/S disponíveis para solicitações usando o pool de recursos.
Aplica-se a: SQL Server 2014 (12.x) e posterior.
CREATE RESOURCE POOL PoolAdmin
WITH (
MIN_IOPS_PER_VOLUME = 200,
MAX_IOPS_PER_VOLUME = 1000
);
Conteúdo relacionado
- Tutorial : exemplos de configuração do administrador de recursos e práticas recomendadas
- do administrador de recursos
- do pool de recursos do administrador de recursos do
- Criar um pool de recursos
- ALTER RESOURCE POOL
- DROP RESOURCE POOL
- CRIAR GRUPO DE CARGA DE TRABALHO
- ALTER WORKLOAD GROUP
- DROP WORKLOAD GROUP
- ALTER RESOURCE GOVERNOR