Compartir a través de


CREATE RESOURCE POOL (Transact-SQL)

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 características compatibles con las ediciones de SQL Server, vea Características compatibles con las ediciones de SQL Server 2014.

Se aplica a: SQL Server (desde SQL Server 2008 hasta la versión actual).

Icono de vínculo a temas 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 de SQL Server y debe cumplir las reglas de los identificadores.

  • MIN_CPU_PERCENT =value
    Especifica el ancho de banda de CPU promedio garantizado para todas las solicitudes del grupo de recursos de servidor cuando hay contención de CPU. value es un entero y su valor predeterminado es 0. El intervalo permitido para value está comprendido entre 0 y 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 y su valor predeterminado es 100. El intervalo permitido para value está comprendido entre 1 y 100.

  • CAP_CPU_PERCENT =value

    Se aplica a: desde SQL Server 2012 hasta SQL Server 2014.

    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 y su valor predeterminado es 100. El intervalo permitido para value está comprendido entre 1 y 100.

  • AFFINITY {SCHEDULER = AUTO | ( <scheduler_range_spec> ) | NUMANODE = (<NUMA_node_range_spec>)}

    Se aplica a: desde SQL Server 2012 hasta SQL Server 2014.

    Adjunta el grupo de recursos de servidor a programadores específicos. El valor predeterminado es AUTO.

    AFFINITY SCHEDULER = ( <scheduler_range_spec> ) asigna el grupo de recursos de servidor a las programaciones de SQL Server indicadas por los identificadores especificados. Estos identificadores se asignan a los valores de la columna scheduler_id de sys.dm_os_schedulers (Transact-SQL).

    Cuando se 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 o al intervalo de nodos NUMA 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 y su valor predeterminado es 0. El intervalo permitido para value está comprendido entre 0 y 100.

  • MAX_MEMORY_PERCENT =value
    Especifica la memoria total del servidor que pueden utilizar las solicitudes de este grupo de recursos de servidor. value es un entero y su valor predeterminado es 100. El intervalo permitido para value está comprendido entre 1 y 100.

  • MIN_IOPS_PER_VOLUME =value

    Se aplica a: desde SQL Server 2014 hasta SQL Server 2014.

    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 está comprendido entre 0 y 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

    Se aplica a: desde SQL Server 2014 hasta SQL Server 2014.

    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 está comprendido entre 0 y 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.

Comentarios

MIN_IOPS_PER_VOLUME y MAX_IOPS_PER_VOLUME especifican las lecturas o escrituras mínimas y máximas 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 iguales que los valores de MIN_CPU_PERCENT y MIN_MEMORY_PERCENT, respectivamente.

CAP_CPU_PERCENT se diferencia de MAX_CPU_PERCENT en que las cargas de trabajo asociadas al grupo pueden utilizar capacidad de CPU por encima del valor de MAX_CPU_PERCENT, si se encuentra disponible, pero no por encima del valor de CAP_CPU_PERCENT.

El porcentaje total de CPU para cada componente con afinidad (programadores o nodos NUMA) no debe superar el 100 %.

Permisos

Requiere el permiso CONTROL SERVER.

Ejemplos

En el ejemplo siguiente se crea un grupo de recursos de servidor denominado bigPool. Este grupo utiliza los valores predeterminados del regulador de recursos.

CREATE RESOURCE POOL bigPool;
GO
ALTER RESOURCE GOVERNOR RECONFIGURE;
GO

En el ejemplo siguiente se establece el valor de CAP_CPU_PERCENT en un límite máximo de 30 % y AFFINITY SCHEDULER en un intervalo de 0 a 63, 128 a 191.

Se aplica a: desde SQL Server 2012 hasta SQL Server 2014.

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
      );

En el ejemplo siguiente se establece MIN_IOPS_PER_VOLUME en <un valor> y MAX_IOPS_PER_VOLUME en <un valor>. Estos valores controlan las operaciones de lectura y escritura de E/S física disponibles para el grupo de recursos de servidor.

Se aplica a: desde SQL Server 2014 hasta SQL Server 2014.

CREATE RESOURCE POOL PoolAdmin
WITH (
    MIN_IOPS_PER_VOLUME = 20,
    MAX_IOPS_PER_VOLUME = 100
      );

Vea también

Referencia

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)

Conceptos

Grupo de recursos de servidor del regulador de recursos

Crear un grupo de recursos de servidor