ALTER RESOURCE POOL (Transact-SQL)
Se aplica a:SQL ServerAzure SQL Managed Instance
Cambia un regulador de recursos existente configuración del grupo de recursos para una instancia del motor de base de datos.
Nota
Para Azure SQL Managed Instance, debe estar en el contexto de la base de datos de master
para modificar la configuración del regulador de recursos.
Convenciones de sintaxis de Transact-SQL
Sintaxis
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 | [valor predeterminado] }
Es el nombre de un grupo de recursos definido por el usuario existente o el grupo de recursos integrado default
.
default
debe estar entre corchetes ([]
) o comillas (""
) cuando se usa con ALTER RESOURCE POOL
para evitar un conflicto con DEFAULT
, que es una palabra reservada del sistema. Para obtener más información, consulte Identificadores de base de datos.
Los grupos de recursos integrados y los grupos de cargas de trabajo usan todos los nombres en minúsculas, como default
. Use el default
en minúsculas en los servidores que usan una intercalación que distingue mayúsculas de minúsculas. Los servidores con intercalación que no distinguen mayúsculas de minúsculas tratan default
, Default
y DEFAULT
como el mismo valor.
MIN_CPU_PERCENT = valor
Especifica el ancho banda de la CPU promedio garantizado para todas las solicitudes en el grupo de recursos de servidor cuando hay contención de CPU. valor es un entero con un valor predeterminado de 0. El intervalo permitido para value es de 0 a 100.
MAX_CPU_PERCENT = de valor de
Especifica el ancho de banda de CPU promedio máximo que reciben todas las solicitudes del grupo de recursos cuando hay contención de CPU. value es un entero con un valor predeterminado de 100. El intervalo permitido para value es de 1 a 100.
CAP_CPU_PERCENT = valor
Válido para : SQL Server 2012 (11.x) y versiones posteriores.
Especifica un límite máximo en el ancho de banda de CPU que reciben todas las solicitudes del grupo de recursos. Limita el nivel máximo de ancho de banda de CPU para que sea el mismo que el valor especificado. value es un entero con un valor predeterminado de 100. El intervalo permitido para value es de 1 a 100.
Nota
Debido a la naturaleza estadística de la gobernanza de cpu, es posible que observe picos cortos ocasionales que superan el valor especificado en CAP_CPU_PERCENT
.
AFFINITY {SCHEDULER = AUTO | ( <scheduler_range_spec> ) | NUMANODE = (<NUMA_node_range_spec>)}
Válido para : SQL Server 2012 (11.x) y versiones posteriores.
Adjunte el grupo de recursos de servidor a los programadores específicos. El valor predeterminado es AUTO
.
Al especificar <scheduler_range_spec>
para AFFINITY SCHEDULER
afinidad, el grupo de recursos se aplica a los programadores del motor de base de datos identificados por los identificadores especificados. Estos identificadores se asignan a los valores de la columna scheduler_id
de sys.dm_os_schedulers.
Al especificar <NUMA_node_range_spec>
para AFFINITY NUMANODE
afinidad entre el grupo de recursos y los programadores del motor de base de datos que se asignan a las CPU lógicas que corresponden al nodo NUMA especificado o a un intervalo de nodos. Puede usar la siguiente consulta de Transact-SQL para detectar la asignación entre la configuración de NUMA física y los identificadores del programador del motor de base de datos.
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 de
Especifica la cantidad mínima de memoria del área de trabajo de consulta reservada para el grupo de recursos que no se puede compartir con otros grupos de recursos. valor es un entero con un valor predeterminado de 0. El intervalo permitido para valor es de 0 a 100.
MAX_MEMORY_PERCENT = valor
Especifica la cantidad máxima de memoria del área de trabajo de consulta que pueden usar las solicitudes de este grupo de recursos. value es un entero con un valor predeterminado de 100. El intervalo permitido para value es de 1 a 100.
MIN_IOPS_PER_VOLUME = valor
Válido para : SQL Server 2014 (12.x) y versiones posteriores.
Especifica el número mínimo de operaciones de E/S por segundo (IOPS) por volumen de disco que se deben reservar para el grupo de recursos de servidor. El intervalo permitido para value es de 0 a 2^31-1 (2.147.483.647). Especifique 0 para indicar que no hay un mínimo para el grupo. El valor predeterminado es 0.
MAX_IOPS_PER_VOLUME = de valor de
Válido para : SQL Server 2014 (12.x) y versiones posteriores.
Especifica el número máximo de operaciones de E/S por segundo (IOPS) por volumen de disco que se deben permitir para el grupo de recursos de servidor. El intervalo permitido para value es de 0 a 2^31-1 (2.147.483.647). Especifique 0 para quitar un límite de IOPS para el grupo. El valor predeterminado es 0.
Si el MAX_IOPS_PER_VOLUME
de un grupo está establecido en 0, el grupo no se rige por E/S en absoluto y puede tomar todas las IOPS del sistema incluso si otros grupos tienen MIN_IOPS_PER_VOLUME
establecido. En este caso, se recomienda establecer el valor de MAX_IOPS_PER_VOLUME
para este grupo en un número alto (por ejemplo, el valor máximo 2^31-1) para hacer que esta E/S del grupo se rija y respetar las reservas de IOPS que podrían existir para otros grupos.
Observaciones
La suma de MIN_CPU_PERCENT
o MIN_MEMORY_PERCENT
para todos los grupos de recursos no puede superar el 100 %.
MIN_IOPS_PER_VOLUME
y MAX_IOPS_PER_VOLUME
especifique las E/S mínimas y máximas por segundo. Las E/S pueden ser lecturas o escrituras, y pueden ser de cualquier tamaño. Por lo tanto, con los mismos límites de IOPS, el rendimiento mínimo y máximo de E/S puede variar en función de la combinación de tamaños de E/S en la carga de trabajo.
Los valores de MAX_CPU_PERCENT
y MAX_MEMORY_PERCENT
deben ser mayores o iguales que los valores de MIN_CPU_PERCENT
y MIN_MEMORY_PERCENT
, respectivamente.
CAP_CPU_PERCENT
difiere de MAX_CPU_PERCENT
en que las cargas de trabajo asociadas al grupo pueden usar la capacidad de CPU por encima del valor de MAX_CPU_PERCENT
si está disponible, pero no por encima del valor de CAP_CPU_PERCENT
. Aunque puede haber picos cortos superiores a CAP_CPU_PERCENT
, las cargas de trabajo no pueden superar CAP_CPU_PERCENT
durante períodos prolongados de tiempo, incluso cuando hay capacidad adicional de CPU disponible.
El porcentaje total de CPU para cada componente afinidad (programador o nodos NUMA) no puede superar el 100 %.
Para más información, consulte
Planes almacenados en caché
Cuando se cambia un plan que afecta a la configuración, la nueva configuración surte efecto en planes previamente almacenados en caché solo después de ejecutar DBCC FREEPROCCACHE (<pool_name>)
, donde <pool_name>
es el nombre de un grupo de recursos del regulador de recursos.
- Si va a cambiar
AFFINITY
de varios programadores a un único programador, no es necesario ejecutarDBCC FREEPROCCACHE
porque los planes paralelos se pueden ejecutar en modo serie. Sin embargo, este plan podría ser menos eficaz que un plan compilado como un plan serie. - Si va a cambiar
AFFINITY
de un único programador a varios programadores, no es necesario ejecutarDBCC FREEPROCCACHE
. Sin embargo, los planes serie no se pueden ejecutar en paralelo, por lo que borrar la caché respectiva permite que los nuevos planes se compilen potencialmente mediante paralelismo.
Advertencia
Borrar los planes almacenados en caché de un grupo de recursos asociado a más de un grupo de cargas de trabajo afecta a todos los grupos de cargas de trabajo mediante el grupo de recursos definido por el usuario identificado por <pool_name>
.
Permisos
Requiere el permiso CONTROL SERVER
.
Ejemplos
En el ejemplo siguiente se mantiene toda la configuración actual del grupo de recursos para el grupo de default
, excepto para MAX_CPU_PERCENT
, que se cambia al 25 por ciento.
ALTER RESOURCE POOL [default] WITH (MAX_CPU_PERCENT = 25);
ALTER RESOURCE GOVERNOR RECONFIGURE;
En el ejemplo siguiente se modifica el grupo de recursos de adhocPool
de la siguiente manera:
- Reserva el 10 % de la CPU y el 5 % de la memoria del área de trabajo de consulta mediante
MIN_CPU_PERCENT
yMIN_MEMORY_PERCENT
respectivamente. - Establece un límite de memoria del área de trabajo de consulta del 15 % mediante
MAX_MEMORY_PERCENT
. - Establece un límite de CPU flexible del 20 por ciento un límite de CPU duro del 30 por ciento mediante
MAX_CPU_PERCENT
yCAP_CPU_PERCENT
respectivamente. - Afinidad entre el grupo y dos intervalos de CPU lógicas (de 0 a 63 y 128 a 191) mediante
AFFINITY SCHEDULER
.
Válido para : SQL Server 2012 (11.x) y versiones posteriores.
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;
Contenido relacionado
- del regulador de recursos
- grupo de recursos del regulador de recursos
- cambiar la configuración del grupo de recursos
- CREATE RESOURCE POOL
- DROP RESOURCE POOL
- CREATE WORKLOAD GROUP
- ALTER WORKLOAD GROUP
- DROP WORKLOAD GROUP
- ALTER RESOURCE GOVERNOR