ALTER WORKLOAD GROUP (Transact-SQL)

Cambia la configuración del grupo de cargas de trabajo del regulador de recursos existente y, opcionalmente, la asigna a un grupo de recursos de servidor del regulador de recursos.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL.

Sintaxis

ALTER WORKLOAD GROUP { group_name | "default" }
[ WITH
    ([ IMPORTANCE = { LOW | MEDIUM | HIGH } ]
           [ [ , ] REQUEST_MAX_MEMORY_GRANT_PERCENT = value ]
           [ [ , ] REQUEST_MAX_CPU_TIME_SEC = value ]
           [ [ , ] REQUEST_MEMORY_GRANT_TIMEOUT_SEC = value ]
           [ [ , ] MAX_DOP = value ]
           [ [ , ] GROUP_MAX_REQUESTS = value ] )
 ]
[ USING { pool_name | "default" } ]
[ ; ]

Argumentos

  • group_name | "default"
    Es el nombre de un grupo de cargas de trabajo definido por un usuario ya existente o el grupo de cargas de trabajo predeterminado del regulador de recursos.

    Nota

    El regulador de recursos crea los grupos "default" e internos al instalarse SQL Server.

    La opción "default" debe estar incluida entre comillas ("") o corchetes ([]) si se utiliza con ALTER WORKLOAD GROUP para evitar el conflicto con DEFAULT, que es una palabra reservada del sistema. Para obtener más información, vea Identificadores delimitados (motor de base de datos).

    Nota

    Todos los grupos de cargas de trabajo y de recursos de servidor predefinidos usan nombres en minúsculas, como "predeterminado". Debe tenerse esto en cuenta en los servidores que usan una intercalación que distingue entre mayúsculas y minúsculas. En los servidores que usan una intercalación que no distingue entre mayúsculas y minúsculas, como SQL_Latin1_General_CP1_CI_AS, los nombres "predeterminado" y "Predeterminado" son equivalentes.

  • IMPORTANCE = { LOW | MEDIUM | HIGH }
    Especifica la importancia relativa de una solicitud en el grupo de cargas de trabajo. IMPORTANCE puede ser es uno de los siguientes valores:

    • LOW

    • MEDIUM (predeterminado)

    • HIGH

    Nota

    Internamente, cada valor de IMPORTANCE se almacena como un número que se usa para los cálculos.

    IMPORTANCE es local para el grupo de recursos de servidor; los grupos de cargas de trabajo de importancia distinta dentro del mismo grupo de recursos de servidor se influyen entre sí, pero no influyen en los grupos de cargas de trabajo de otro grupo de recursos de servidor.

  • REQUEST_MAX_MEMORY_GRANT_PERCENT = value
    Especifica la cantidad máxima de memoria que una única solicitud puede tomar del grupo. Este porcentaje es relativo al tamaño del grupo de recursos de servidor especificado por MAX_MEMORY_PERCENT.

    Nota

    La cantidad especificada se refiere únicamente a la memoria concedida para la ejecución de la consulta.

    value debe ser 0 o un entero positivo. El intervalo permitido de value está comprendido entre 0 y 100. El valor predeterminado de value es 25.

    Tenga en cuenta lo siguiente:

    • Establecer value en 0 impide la ejecución de consultas con operaciones SORT y HASH JOIN en grupos de cargas de trabajo definidos por el usuario.

    • No es recomendable establecer value en un valor superior a 70 porque es posible que el servidor no pueda reservar suficiente memoria libre si se están ejecutando otras consultas simultáneas. Esto puede dar lugar al final a un error de tiempo de espera de consulta 8645.

    Nota

    Si los requisitos de memoria de consulta superan el límite especificado por este parámetro, el servidor hace lo siguiente:

    En el caso de los grupos de cargas de trabajo definidos por el usuario, el servidor intenta reducir el grado de paralelismo de consulta hasta que el requisito de memoria cae por debajo del límite, o hasta que el grado de paralelismo se igual a 1. Si el requisito de memoria de consulta sigue siendo mayor que el límite, se produce el error 8657.

    En el caso de los grupos de cargas de trabajo internos y predeterminados, el servidor permite que la consulta obtenga la memoria necesaria.

    Tenga en cuenta que ambos casos están sujetos a un error de tiempo de espera 8645 si el servidor no tiene suficiente memoria física.

    Para obtener más información sobre los mensajes de error del regulador de recursos, vea Solucionar problemas del regulador de recursos.

  • REQUEST_MAX_CPU_TIME_SEC = value
    Especifica el tiempo máximo, en segundos, que una consulta puede esperar hasta que esté disponible un recurso antes de que se produzca un error en la consulta. value debe ser cero o un entero positivo. El valor predeterminado de value, 0, utiliza un cálculo interno basado en el costo de la consulta para determinar el tiempo máximo.

    Nota

    El regulador de recursos no evitará que una solicitud continúe si se supera el tiempo máximo. Sin embargo, se generará un evento. Para obtener más información, vea Clase de evento Umbral de la CPU superado.

  • REQUEST_MEMORY_GRANT_TIMEOUT_SEC = value
    Especifica el tiempo máximo, en segundos, que una consulta puede esperar hasta que esté disponible la concesión de memoria (memoria de búfer de trabajo).

    Nota

    Una consulta no tiene por qué generar un error cuando se agota el tiempo de espera para la concesión de memoria. Solo se producirá un error si se ejecutan demasiadas consultas simultáneamente. De lo contrario, es posible que la consulta obtenga la concesión de memoria mínima, lo que reducirá su rendimiento.

    value debe ser un entero positivo. El valor predeterminado de value, 0, utiliza un cálculo interno basado en el costo de la consulta para determinar el tiempo máximo.

  • MAX_DOP = value
    Especifica el grado máximo de paralelismo (DOP) para las solicitudes paralelas. value debe ser 0 o un entero positivo, de 1 a 255. Cuando value es 0, el servidor elige el grado máximo de paralelismo. Esta es la configuración predeterminada y recomendada.

    Nota

    El valor real que Motor de base de datos establece para MAX_DOP puede ser menor que el valor especificado. El valor final se determinada mediante la fórmula min(255, número de CPU).

    Nota de advertenciaAdvertencia

    El cambio de MAX_DOP puede afectar negativamente al rendimiento de un servidor. Si debe cambiar MAX_DOP, se recomienda que se establezca en un valor menor o igual que el número máximo de programadores de hardware que hay en un solo nodo NUMA. Se recomienda no establecer MAX_DOP en un valor mayor que 8.

    MAX_DOP se trata de la siguiente manera:

    • MAX_DOP como sugerencia de consulta, se acepta con tal de que no supere el MAX_DOP del grupo de cargas de trabajo.

    • MAX_DOP como sugerencia de consulta, siempre invalida el 'grado máximo de paralelismo' de sp_configure.

    • MAX_DOP del grupo de cargas de trabajo invalida el 'grado máximo de paralelismo' de sp_configure.

    • Si se marca la consulta en tiempo de compilación como serie (MAX_DOP = 1), no se podrá volver a establecer como paralela en tiempo de ejecución, independientemente del grupo de cargas de trabajo o del valor de sp_configure.

    Una vez configurado DOP, solo se puede reducir ante la concesión de presión de memoria. La reconfiguración del grupo de cargas de trabajo no es visible mientras se espera en la cola de concesión de memoria.

  • GROUP_MAX_REQUESTS = value
    Especifica el número máximo de solicitudes simultáneas que pueden ejecutarse en el grupo de cargas de trabajo. value debe ser 0 o un entero positivo. El valor predeterminado de value, 0, permite solicitudes sin ningún límite.

  • USING { pool_name | "default" }
    Asocia el grupo de cargas de trabajo al grupo de recursos de servidor definido por el usuario identificado por pool_name, lo que efectivamente, coloca el grupo de cargas de trabajo en el grupo de recursos de servidor. Si no se proporciona pool_name o si no se utiliza el argumento USING, el grupo de cargas de trabajo se coloca en el grupo predeterminado del regulador de recursos predeterminado.

    La opción "default" debe estar incluida entre comillas ("") o corchetes ([]) si se utiliza con ALTER WORKLOAD GROUP para evitar el conflicto con DEFAULT, que es una palabra reservada del sistema. Para obtener más información, vea Identificadores delimitados (motor de base de datos).

    Nota

    La opción "default" distingue entre mayúsculas y minúsculas.

Comentarios

ALTER WORKLOAD GROUP está permitido en el grupo predeterminado.

Los cambios en la configuración del grupo de cargas de trabajo no surtirán efecto hasta que se ejecute ALTER RESOURCE GOVERNOR RECONFIGURE.

Si va a ejecutar instrucciones de DDL, se recomienda familiarizarse primero con los estados del regulador de recursos. Para obtener más información, vea Estados del regulador de recursos.

REQUEST_MEMORY_GRANT_PERCENT: en SQL Server 2005 se permite que la creación de índices use más memoria del área de trabajo que la concedida inicialmente para mejorar el rendimiento. El regulador de recursos de SQL Server 2008 admite este tratamiento especial. Sin embargo, la concesión inicial y cualquier concesión de memoria adicional están limitadas por la configuración del grupo de cargas de trabajo y el grupo de recursos de servidor.

Creación de índices en una tabla con particiones

La memoria consumida por la creación de índices en una tabla con particiones no alineada es proporcional al número de particiones involucradas. Si la memoria total necesaria supera el límite por consulta (REQUEST_MAX_MEMORY_GRANT_PERCENT) impuesto por la configuración del grupo de cargas de trabajo del regulador de recursos, puede que esta creación de índices no se ejecute. Dado que el grupo de cargas de trabajo "predeterminado" permite que una consulta supere el límite por consulta con la memoria mínima necesaria para iniciar la compatibilidad con SQL Server 2005, es posible que el usuario pueda ejecutar la misma creación de índices en el grupo de cargas de trabajo "predeterminado" si el grupo de recursos de servidor "predeterminado" tiene configurada una memoria total suficiente para ejecutar dicha consulta.

Permisos

Requiere el permiso CONTROL SERVER.

Ejemplos

En el ejemplo siguiente se cambia la importancia de las solicitudes en el grupo predeterminado de MEDIUM a LOW.

ALTER WORKLOAD GROUP "default"
WITH (IMPORTANCE = LOW)
GO
ALTER RESOURCE GOVERNOR RECONFIGURE
GO

En el ejemplo siguiente se mueve un grupo de cargas de trabajo desde el grupo de recursos actual al grupo de recursos predeterminado.

ALTER WORKLOAD GROUP adHoc
USING [default];
GO
ALTER RESOURCE GOVERNOR RECONFIGURE
GO