CREATE RESOURCE POOL (Transact-SQL)
Se aplica a:SQL ServerAzure SQL Managed Instance
Crea un regulador de recursos grupo de recursos. Un grupo de recursos representa un subconjunto de los recursos físicos (CPU, memoria e E/S) de una instancia del motor de base de datos. El regulador de recursos permite reservar o limitar los recursos del servidor entre grupos de recursos, hasta un máximo de 64 grupos.
El regulador de recursos no está disponible en todas las ediciones de SQL Server. Para obtener una lista de las características compatibles con las ediciones de SQL Server, consulte Ediciones y características admitidas de SQL Server 2022.
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
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
Es el nombre definido por el usuario para identificar el grupo de recursos de servidor. pool_name es alfanumérico, puede tener hasta 128 caracteres, debe ser único dentro de una instancia del motor de base de datos y debe cumplir las reglas para los identificadores de base de datos de .
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 de ancho de banda máximo de CPU para que coincida con 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 igual 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 utilizar la capacidad de CPU existente por encima del valor de MAX_CPU_PERCENT
si está disponible, pero sin sobrepasar el 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
Permisos
Requiere el permiso CONTROL SERVER
.
Ejemplos
Para obtener ejemplos adicionales de configuración del regulador de recursos, consulte ejemplos de configuración del regulador de recursos y procedimientos recomendados.
Creación de un grupo de recursos
En este ejemplo se creó un grupo de recursos denominado bigPool
. Este grupo usa la configuración predeterminada del regulador de recursos.
CREATE RESOURCE POOL bigPool;
ALTER RESOURCE GOVERNOR RECONFIGURE;
Establecer límites y reservas de CPU y memoria
En este ejemplo se configura 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.
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)
);
Establecimiento de la reserva y el límite de IOPS
En este ejemplo se reservan 200 IOPS por volumen para el grupo mediante MIN_IOPS_PER_VOLUME
y limita el IOPS por volumen a 1000 mediante MAX_IOPS_PER_VOLUME
. Estos valores rigen las operaciones de lectura y escritura físicas totales que están disponibles para las solicitudes que usan el grupo de recursos.
Válido para : SQL Server 2014 (12.x) y versiones posteriores.
CREATE RESOURCE POOL PoolAdmin
WITH (
MIN_IOPS_PER_VOLUME = 200,
MAX_IOPS_PER_VOLUME = 1000
);
Contenido relacionado
- Tutorial de : ejemplos de configuración del regulador de recursos y procedimientos recomendados
- del regulador de recursos
- grupo de recursos del regulador de recursos
- Crear un grupo de recursos
- ALTER RESOURCE POOL
- DROP RESOURCE POOL
- CREATE WORKLOAD GROUP
- ALTER WORKLOAD GROUP
- DROP WORKLOAD GROUP
- ALTER RESOURCE GOVERNOR