CREATE RESOURCE POOL (Transact-SQL)
Se aplica a: SQL Server
Azure SQL Instancia administrada
Crea un grupo de recursos de servidor del regulador de recursos en SQL Server. Un grupo de recursos de servidor representa un subconjunto de los recursos físicos (memoria, CPU y E/S) de una instancia del motor de base de datos. El Regulador de recursos permite que un administrador de bases de datos distribuya los recursos del servidor entre los 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 admitidas por las ediciones de SQL Server, vea Características compatibles con las ediciones de SQL Server 2016.
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]
Nota:
Para ver la sintaxis de Transact-SQL para SQL Server 2014 (12.x) y versiones anteriores, consulte Versiones anteriores de la documentació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 de SQL Server y debe cumplir las reglas de los identificadores.
MIN_CPU_PERCENT =value
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 =value
Especifica el ancho de banda de CPU promedio máximo que recibirán todas las solicitudes del grupo de recursos de servidor 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 =value
Válido para : SQL Server 2012 (11.x) y versiones posteriores.
Especifica un límite máximo de ancho de banda de CPU que recibirán todas las solicitudes del grupo de recursos de servidor. 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.
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.
AFFINITY SCHEDULER = (<scheduler_range_spec>) asigna el grupo de recursos a las programaciones de SQL Server representadas por los identificadores proporcionados. Estos identificadores se asignan a los valores de la columna scheduler_id de sys.dm_os_schedulers (Transact-SQL).
Cuando usa AFFINITY NUMANODE = (<NUMA_node_range_spec>), se establece afinidad entre el grupo de recursos y los programadores de SQL Server que se asignan a las CPU físicas correspondientes al nodo NUMA o al intervalo de nodos especificado. Puede usar la siguiente consulta de Transact-SQL para detectar la asignación entre la configuración física de NUMA y los identificadores de programador de SQL Server.
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 =value
Especifica la cantidad mínima de memoria reservada para este grupo de recursos de servidor que no se puede compartir con otros grupos de recursos de servidor. value es un entero con un valor predeterminado de 0. El intervalo permitido para value está comprendido entre 0 y 100.
MAX_MEMORY_PERCENT =value
Especifica la memoria total del servidor que puede ser utilizada por las solicitudes en este grupo de recursos de servidor. value es un entero con un valor predeterminado de 100. El intervalo permitido para value es de 1 a 100.
MIN_IOPS_PER_VOLUME =value
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 si no desea indicar un umbral mínimo para el grupo. El valor predeterminado es 0.
MAX_IOPS_PER_VOLUME =value
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 establecer un umbral ilimitado para el grupo. El valor predeterminado es 0.
Si MAX_IOPS_PER_VOLUME
se establece en 0 para un grupo, este no está regulado y puede tomar todas las IOPS del sistema, incluso aunque otros grupos tengan establecido un valor MIN_IOPS_PER_VOLUME. 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) si desea que se regule la E/S de este grupo.
Observaciones
MIN_IOPS_PER_VOLUME
y MAX_IOPS_PER_VOLUME
especifican el mínimo y el máximo de escrituras o escrituras por segundo. Estas lecturas o escrituras pueden ser de cualquier tamaño y no indican un rendimiento mínimo o máximo.
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
.
El porcentaje total de la CPU para cada componente afín (programadores o nodos NUMA) no debe superar el 100 por ciento.
Permisos
Requiere el permiso CONTROL SERVER
.
Ejemplos
1. Mostrar cómo crear un grupo de recursos
En este ejemplo se creó un grupo de recursos denominado "bigPool". Este grupo utiliza los valores predeterminados del regulador de recursos.
CREATE RESOURCE POOL bigPool;
GO
ALTER RESOURCE GOVERNOR RECONFIGURE;
GO
2. Establecer CAP_CPU_PERCENT en un límite máximo y establecer AFFINITY SCHEDULER
Establezca CAP_CPU_PERCENT en un límite máximo de 30 por ciento y establezca AFFINITY SCHEDULER en un intervalo de 0 a 63, 128 a 191.
Válido para : SQL Server 2012 (11.x) y versiones posteriores.
CREATE RESOURCE POOL PoolAdmin
WITH (
MIN_CPU_PERCENT = 10,
MAX_CPU_PERCENT = 20,
CAP_CPU_PERCENT = 30,
AFFINITY SCHEDULER = (0 TO 63, 128 TO 191),
MIN_MEMORY_PERCENT = 5,
MAX_MEMORY_PERCENT = 15
);
3. Establecer MIN_IOPS_PER_VOLUME y MAX_IOPS_PER_VOLUME
Establezca MIN_IOPS_PER_VOLUME en 20 y MAX_IOPS_PER_VOLUME en 100. Estos valores controlan las operaciones de lectura y escritura de E/S física disponibles para el grupo de recursos de servidor.
Válido para : SQL Server 2014 (12.x) y versiones posteriores.
CREATE RESOURCE POOL PoolAdmin
WITH (
MIN_IOPS_PER_VOLUME = 20,
MAX_IOPS_PER_VOLUME = 100
);
Consulte también
ALTER RESOURCE POOL (Transact-SQL)
DROP RESOURCE POOL (Transact-SQL)
CREATE WORKLOAD GROUP (Transact-SQL)
ALTER WORKLOAD GROUP (Transact-SQL)
DROP WORKLOAD GROUP (Transact-SQL)
ALTER RESOURCE GOVERNOR (Transact-SQL)
Grupo de recursos de servidor del regulador de recursos
Crear un grupo de recursos de servidor