CREATE WORKLOAD GROUP (Transact-SQL)
Selección de un producto
En la fila siguiente, seleccione el nombre del producto que le interese; de esta manera, solo se mostrará la información de ese producto.
* SQL Server *
SQL Server y SQL Managed Instance
Crea un grupo de cargas de trabajo del regulador de recursos y asocia el grupo de cargas de trabajo a un grupo de recursos de servidor del regulador de recursos. Resource Governor 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, consulte Ediciones y características admitidas de SQL Server 2022.
Convenciones de sintaxis de Transact-SQL.
Sintaxis
CREATE WORKLOAD GROUP group_name
[ 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" ]
[ [ , ] EXTERNAL external_pool_name | "default" ] ]
} ]
[ ; ]
Argumentos
group_name
Nombre definido por el usuario para el grupo de cargas de trabajo. group_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 de la base de datos.
IMPORTANCE = { LOW | MEDIUM | HIGH }
Especifica la importancia relativa de una solicitud en el grupo de cargas de trabajo. La importancia puede ser una de las siguientes, siendo MEDIUM el valor predeterminado:
- 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. 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.
REQUEST_MAX_MEMORY_GRANT_PERCENT = valor
Especifica la cantidad máxima de memoria que una única solicitud puede tomar del grupo. valor es un porcentaje relativo al tamaño del grupo de recursos de servidor especificado por MAX_MEMORY_PERCENT. El valor predeterminado es de 25.
value es un entero hasta SQL Server 2017 (14.x) y el intervalo permitido es de 1 a 100. A partir de SQL Server 2019 (15.x), el valor es un tipo de datos float
y el intervalo permitido es de 0 a 100.
Importante
La cantidad especificada se refiere únicamente a la memoria concedida para la ejecución de la consulta.
Establecer valor en 0 evita la ejecución de consultas con operaciones SORT y HASH JOIN en grupos de cargas de trabajo definidos por el usuario.
No se recomienda establecer el elemento value en un valor superior a 70 porque es posible que el servidor no pueda reservar memoria suficiente 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.
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 sea 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.
REQUEST_MAX_CPU_TIME_SEC = valor
Especifica la cantidad máxima de tiempo de CPU, en segundos, que puede usar una solicitud. valor debe ser 0 o un entero positivo. El valor predeterminado de value es 0, que indica una cantidad ilimitada.
Nota
De forma predeterminada, Resource Governor no evita 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 eventos Umbral de la CPU superado.
Importante
A partir de SQL Server 2016 (13.x) SP2 y SQL Server 2017 (14.x) CU3, y si se usa la marca de seguimiento 2422, Resource Governor anula una solicitud cuando se supera el tiempo máximo.
REQUEST_MEMORY_GRANT_TIMEOUT_SEC = valor
Especifica el tiempo máximo, en segundos, que una consulta puede esperar hasta que esté disponible una concesión de memoria (memoria de búfer de trabajo). valor debe ser 0 o un entero positivo. El valor predeterminado de valor, 0, usa un cálculo interno basado en el costo de la consulta para determinar el tiempo máximo.
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.
MAX_DOP = valor
Especifica el grado máximo de paralelismo (MAXDOP) para la ejecución de consultas en paralelo. valor debe ser 0 o un entero positivo. El intervalo permitido para value es de 0 a 64. El valor predeterminado para valor, 0, usa la configuración global.
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 la consulta en tiempo de compilación se marca como serie
(MAX_DOP = 1)
, no podrá volver a establecerse 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.
Nota
El grupo de cargas de trabajo MAX_DOP invalida la configuración del servidor para el grado máximo de paralelismo y la configuración con ámbito de la MAXDOP
base de datos.
Sugerencia
Para lograrlo en el nivel de consulta, use la sugerencia de MAXDOP
consulta. Establecer el grado máximo de paralelismo como una sugerencia de consulta es eficaz siempre que no supere el valor MAX_DOP del grupo de cargas de trabajo. Si el valor de la sugerencia de consulta MAXDOP supera el valor configurado mediante Resource Governor, el Motor de base de datos de SQL Server emplea el valor MAX_DOP
de Resource Governor. La sugerencia de consulta MAXDOP siempre reemplaza la configuración del servidor para el grado máximo de paralelismo.
Para lograrlo en el nivel de base de datos, use la MAXDOP
configuración con ámbito de base de datos.
Para llevar a cabo esta acción en el nivel de servidor, use la opción de configuración del servidor Grado máximo de paralelismo (MAXDOP).
GROUP_MAX_REQUESTS =valor
Especifica el número máximo de solicitudes simultáneas que pueden ejecutarse en el grupo de cargas de trabajo. valor debe ser 0 o un entero positivo. El valor predeterminado de valor es 0 y permite solicitudes ilimitadas. Cuando se alcanza el máximo de solicitudes simultáneas, un usuario de ese grupo puede iniciar sesión, pero se coloca en estado de espera hasta que las solicitudes simultáneas caigan por debajo del valor especificado.
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. De esta forma, el grupo de cargas de trabajo se coloca en el grupo de recursos de servidor. Si no se proporciona pool_name o si no se usa el argumento USING, el grupo de cargas de trabajo se coloca en el grupo predeterminado de Resource Governor predefinido.
"default"
es una palabra reservada y cuando se utiliza con USING, debe incluirse entre comillas (""
) o corchetes ([]
).
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. Los servidores con intercalación que no distinguen mayúsculas y minúsculas, como SQL_Latin1_General_CP1_CI_AS
, tratarán "default"
y "Default"
del mismo modo.
EXTERNAL external_pool_name | "default"
Válido para : SQL Server 2016 (13.x) y versiones posteriores.
El grupo de cargas de trabajo puede especificar un grupo de recursos externos. Se puede definir un grupo de cargas de trabajo y asociarlo con dos grupos:
- Un grupo de recursos para cargas de trabajo y consultas de SQL Server.
- Un nuevo grupo de recursos para procesos externos. Para obtener más información, vea sp_execute_external_script (Transact-SQL).
Observaciones
Cuando se utiliza REQUEST_MEMORY_GRANT_PERCENT
, se permite que la creación de índices use más memoria del área de trabajo que la concedida inicialmente para mejorar el rendimiento. Resource Governor de SQL Server 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.
El límite de MAX_DOP
se establece por tarea. No es un límite por solicitud ni por consulta. Esto significa que durante una ejecución de consultas en paralelo, una sola solicitud puede generar varias tareas que se asignan a un programador. Para más información, consulte la guía de arquitectura de subprocesos y tareas.
Cuando se usa MAX_DOP
y la consulta en tiempo de compilación se marca como serie, no podrá volver a establecerse como paralela en tiempo de ejecución, independientemente del grupo de cargas de trabajo o del valor de configuración del servidor. Una vez que se configura MAX_DOP
, solo se puede reducir debido a la 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.
Creación de índices en una tabla con particiones
La memoria usada para 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 de Resource Governor, puede que esta creación de índices no se ejecute. Dado que el grupo de cargas de trabajo "default"
permite que una consulta supere el límite por consulta con la memoria mínima necesaria, es posible que el usuario pueda ejecutar la misma creación de índices en el grupo de cargas de trabajo "default"
si el grupo de recursos de servidor "default"
tiene configurada una memoria total suficiente para ejecutar dicha consulta.
Permisos
Requiere el permiso CONTROL SERVER
.
Ejemplo
Cree un grupo de cargas de trabajo denominado newReports
, que usa la configuración predeterminada de Resource Governor y está en el grupo predeterminado de Resource Governor. El ejemplo especifica el grupo default
, pero no es necesario.
CREATE WORKLOAD GROUP newReports
WITH
(REQUEST_MAX_MEMORY_GRANT_PERCENT = 2.5
, REQUEST_MAX_CPU_TIME_SEC = 100
, MAX_DOP = 4)
USING "default" ;
GO
Consulte también
* SQL Managed Instance *
SQL Server y SQL Managed Instance
Crea un grupo de cargas de trabajo del regulador de recursos y asocia el grupo de cargas de trabajo a un grupo de recursos de servidor del regulador de recursos. Resource Governor 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, consulte Ediciones y características admitidas de SQL Server 2022.
Convenciones de sintaxis de Transact-SQL.
Sintaxis
CREATE WORKLOAD GROUP group_name
[ 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" ]
[ [ , ] EXTERNAL external_pool_name | "default" ] ]
} ]
[ ; ]
Argumentos
group_name
Nombre definido por el usuario para el grupo de cargas de trabajo. group_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 de la base de datos.
IMPORTANCE = { LOW | MEDIUM | HIGH }
Especifica la importancia relativa de una solicitud en el grupo de cargas de trabajo. La importancia puede ser una de las siguientes, siendo MEDIUM el valor predeterminado:
- 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. 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.
REQUEST_MAX_MEMORY_GRANT_PERCENT = valor
Especifica la cantidad máxima de memoria que una única solicitud puede tomar del grupo. valor es un porcentaje relativo al tamaño del grupo de recursos de servidor especificado por MAX_MEMORY_PERCENT. El valor predeterminado es de 25.
value es un entero hasta SQL Server 2017 (14.x) y el intervalo permitido es de 1 a 100. A partir de SQL Server 2019 (15.x), el valor es un tipo de datos float
y el intervalo permitido es de 0 a 100.
Importante
La cantidad especificada se refiere únicamente a la memoria concedida para la ejecución de la consulta.
Establecer valor en 0 evita la ejecución de consultas con operaciones SORT y HASH JOIN en grupos de cargas de trabajo definidos por el usuario.
No se recomienda establecer el elemento value en un valor superior a 70 porque es posible que el servidor no pueda reservar memoria suficiente 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.
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 sea 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.
REQUEST_MAX_CPU_TIME_SEC = valor
Especifica la cantidad máxima de tiempo de CPU, en segundos, que puede usar una solicitud. valor debe ser 0 o un entero positivo. El valor predeterminado de value es 0, que indica una cantidad ilimitada.
Nota
De forma predeterminada, Resource Governor no evita 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 eventos Umbral de la CPU superado.
Importante
A partir de SQL Server 2016 (13.x) SP2 y SQL Server 2017 (14.x) CU3, y si se usa la marca de seguimiento 2422, Resource Governor anula una solicitud cuando se supera el tiempo máximo.
REQUEST_MEMORY_GRANT_TIMEOUT_SEC = valor
Especifica el tiempo máximo, en segundos, que una consulta puede esperar hasta que esté disponible una concesión de memoria (memoria de búfer de trabajo). valor debe ser 0 o un entero positivo. El valor predeterminado de valor, 0, usa un cálculo interno basado en el costo de la consulta para determinar el tiempo máximo.
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.
MAX_DOP = valor
Especifica el grado máximo de paralelismo (MAXDOP) para la ejecución de consultas en paralelo. valor debe ser 0 o un entero positivo. El intervalo permitido para value es de 0 a 64. El valor predeterminado para valor, 0, usa la configuración global.
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 la consulta en tiempo de compilación se marca como serie
(MAX_DOP = 1)
, no podrá volver a establecerse 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.
Nota
El grupo de cargas de trabajo MAX_DOP invalida la configuración del servidor para el grado máximo de paralelismo y la configuración con ámbito de la MAXDOP
base de datos.
Sugerencia
Para lograrlo en el nivel de consulta, use la sugerencia de MAXDOP
consulta. Establecer el grado máximo de paralelismo como una sugerencia de consulta es eficaz siempre que no supere el valor MAX_DOP del grupo de cargas de trabajo. Si el valor de la sugerencia de consulta MAXDOP supera el valor configurado mediante Resource Governor, el Motor de base de datos de SQL Server emplea el valor MAX_DOP
de Resource Governor. La sugerencia de consulta MAXDOP siempre reemplaza la configuración del servidor para el grado máximo de paralelismo.
Para lograrlo en el nivel de base de datos, use la MAXDOP
configuración con ámbito de base de datos.
Para llevar a cabo esta acción en el nivel de servidor, use la opción de configuración del servidor Grado máximo de paralelismo (MAXDOP).
GROUP_MAX_REQUESTS =valor
Especifica el número máximo de solicitudes simultáneas que pueden ejecutarse en el grupo de cargas de trabajo. valor debe ser 0 o un entero positivo. El valor predeterminado de valor es 0 y permite solicitudes ilimitadas. Cuando se alcanza el máximo de solicitudes simultáneas, un usuario de ese grupo puede iniciar sesión, pero se coloca en estado de espera hasta que las solicitudes simultáneas caigan por debajo del valor especificado.
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. De esta forma, el grupo de cargas de trabajo se coloca en el grupo de recursos de servidor. Si no se proporciona pool_name o si no se usa el argumento USING, el grupo de cargas de trabajo se coloca en el grupo predeterminado de Resource Governor predefinido.
"default"
es una palabra reservada y cuando se utiliza con USING, debe incluirse entre comillas (""
) o corchetes ([]
).
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. Los servidores con intercalación que no distinguen mayúsculas y minúsculas, como SQL_Latin1_General_CP1_CI_AS
, tratarán "default"
y "Default"
del mismo modo.
EXTERNAL external_pool_name | "default"
Válido para : SQL Server 2016 (13.x) y versiones posteriores.
El grupo de cargas de trabajo puede especificar un grupo de recursos externos. Se puede definir un grupo de cargas de trabajo y asociarlo con dos grupos:
- Un grupo de recursos para cargas de trabajo y consultas de SQL Server.
- Un nuevo grupo de recursos para procesos externos. Para obtener más información, vea sp_execute_external_script (Transact-SQL).
Observaciones
Cuando se utiliza REQUEST_MEMORY_GRANT_PERCENT
, se permite que la creación de índices use más memoria del área de trabajo que la concedida inicialmente para mejorar el rendimiento. Resource Governor de SQL Server 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.
El límite de MAX_DOP
se establece por tarea. No es un límite por solicitud ni por consulta. Esto significa que durante una ejecución de consultas en paralelo, una sola solicitud puede generar varias tareas que se asignan a un programador. Para más información, consulte la guía de arquitectura de subprocesos y tareas.
Cuando se usa MAX_DOP
y la consulta en tiempo de compilación se marca como serie, no podrá volver a establecerse como paralela en tiempo de ejecución, independientemente del grupo de cargas de trabajo o del valor de configuración del servidor. Una vez que se configura MAX_DOP
, solo se puede reducir debido a la 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.
Creación de índices en una tabla con particiones
La memoria usada para 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 de Resource Governor, puede que esta creación de índices no se ejecute. Dado que el grupo de cargas de trabajo "default"
permite que una consulta supere el límite por consulta con la memoria mínima necesaria, es posible que el usuario pueda ejecutar la misma creación de índices en el grupo de cargas de trabajo "default"
si el grupo de recursos de servidor "default"
tiene configurada una memoria total suficiente para ejecutar dicha consulta.
Permisos
Requiere el permiso CONTROL SERVER
.
Ejemplo
Cree un grupo de cargas de trabajo denominado newReports
, que usa la configuración predeterminada de Resource Governor y está en el grupo predeterminado de Resource Governor. El ejemplo especifica el grupo default
, pero no es necesario.
CREATE WORKLOAD GROUP newReports
WITH
(REQUEST_MAX_MEMORY_GRANT_PERCENT = 2.5
, REQUEST_MAX_CPU_TIME_SEC = 100
, MAX_DOP = 4)
USING "default" ;
GO
Consulte también
* Azure Synapse
Analytics *
Azure Synapse Analytics
Crea un grupo de cargas de trabajo. Los grupos de cargas de trabajo son contenedores de un conjunto de solicitudes y son la base de la configuración de la administración de cargas de trabajo en un sistema. Los grupos de cargas de trabajo proporcionan la capacidad de reservar recursos para el aislamiento de la carga de trabajo, contienen recursos, definen recursos por solicitud y cumplen las reglas de ejecución. Una vez completada la instrucción, la configuración entra en vigor.
Convenciones de sintaxis de Transact-SQL
CREATE WORKLOAD GROUP group_name
WITH
( MIN_PERCENTAGE_RESOURCE = value
, CAP_PERCENTAGE_RESOURCE = value
, REQUEST_MIN_RESOURCE_GRANT_PERCENT = value
[ [ , ] REQUEST_MAX_RESOURCE_GRANT_PERCENT = value ]
[ [ , ] IMPORTANCE = { LOW | BELOW_NORMAL | NORMAL | ABOVE_NORMAL | HIGH } ]
[ [ , ] QUERY_EXECUTION_TIMEOUT_SEC = value ] )
[ ; ]
group_name
Especifica el nombre por el que se identifica el grupo de cargas de trabajo. group_name es sysname. Puede tener hasta 128 caracteres y debe ser único en la instancia.
MIN_PERCENTAGE_RESOURCE = valor
Especifica una asignación de recursos mínima garantizada para este grupo de cargas de trabajo que no se comparte con otros grupos de cargas de trabajo. La memoria es el único recurso regido por este parámetro. value es un entero comprendido entre 0 y 100. La suma de min_percentage_resource en todos los grupos de cargas de trabajo no puede ser superior a 100. El valor de min_percentage_resource no puede ser mayor que cap_percentage_resource. Hay valores efectivos mínimos permitidos por nivel de servicio. Vea Valores efectivos para obtener más detalles.
CAP_PERCENTAGE_RESOURCE = valor
Especifica el uso máximo de recursos para todas las solicitudes de un grupo de cargas de trabajo. Este parámetro está limitado tanto por los recursos de CPU como de memoria. El intervalo de enteros permitido para value es de 1 a 100. El valor de cap_percentage_resource debe ser mayor que min_percentage_resource. Se puede reducir el valor efectivo de cap_percentage_resource si min_percentage_resource se configura mayor que cero en otros grupos de cargas de trabajo.
REQUEST_MIN_RESOURCE_GRANT_PERCENT = value
Establece la cantidad mínima de recursos asignados por solicitud. La memoria es el único recurso regido por este parámetro. value es un parámetro necesario con un número decimal comprendido entre 0,75 y 100,00. El valor de request_min_resource_grant_percent debe ser un múltiplo de 0,25, debe ser un factor de min_percentage_resource y ser menor que cap_percentage_resource. Hay valores efectivos mínimos permitidos por nivel de servicio. Vea Valores efectivos para obtener más detalles.
Por ejemplo:
CREATE WORKLOAD GROUP wgSample
WITH
( MIN_PERCENTAGE_RESOURCE = 26 -- integer value
, REQUEST_MIN_RESOURCE_GRANT_PERCENT = 3.25 -- factor of 26 (guaranteed a minimum of 8 concurrency)
, CAP_PERCENTAGE_RESOURCE = 100 )
Tenga en cuenta los valores que se usan para las clases de recursos como directriz para request_min_resource_grant_percent. La tabla siguiente contiene las asignaciones de recursos para Gen2.
Clase de recurso | Porcentaje de recursos |
---|---|
Smallrc | 3 % |
Mediumrc | 10 % |
Largerc | 22 % |
Xlargerc | 70% |
REQUEST_MAX_RESOURCE_GRANT_PERCENT = valor
Establece la cantidad máxima de recursos asignados por solicitud. La memoria es el único recurso regido por este parámetro. value es un parámetro decimal opcional con un valor predeterminado igual a request_min_resource_grant_percent. value debe ser mayor o igual que request_min_resource_grant_percent. Cuando el valor de request_max_resource_grant_percent es mayor que request_min_resource_grant_percent y los recursos del sistema están disponibles, se asignan recursos adicionales a una solicitud.
IMPORTANCE = { LOW | BELOW_NORMAL | NORMAL | ABOVE_NORMAL | HIGH }
Especifica la importancia predeterminada de una solicitud para el grupo de cargas de trabajo. Importance puede ser una de las siguientes, siendo NORMAL el valor predeterminado:
- LOW
- BELOW_NORMAL
- NORMAL (valor predeterminado)
- ABOVE_NORMAL
- HIGH
La importancia establecida en el grupo de cargas de trabajo está predeterminada para todas las solicitudes en el grupo de cargas de trabajo. Un usuario también puede establecer la importancia en el nivel de clasificador, lo que puede invalidar la configuración de importancia del grupo de cargas de trabajo. Esto permite diferenciar la importancia de las solicitudes de un grupo de cargas de trabajo para acceder a los recursos no reservados más rápido. Cuando la suma de min_percentage_resource entre grupos de cargas de trabajo es inferior a 100, hay recursos no reservados que se asignan en función de la importancia.
QUERY_EXECUTION_TIMEOUT_SEC = valor
Especifica el tiempo máximo, en segundos, que se puede ejecutar una consulta antes de que se cancele. valor debe ser 0 o un entero positivo. El valor predeterminado de value es 0, que indica que no se agota nunca el tiempo de espera de la consulta. QUERY_EXECUTION_TIMEOUT_SEC empieza el recuento una vez que la consulta se encuentra en estado de ejecución, y no cuando la consulta se pone en cola.
Observaciones
Los grupos de cargas de trabajo correspondientes a las clases de recursos se crean automáticamente para favorecer la compatibilidad con versiones anteriores. Estos grupos de cargas de trabajo definidos por el sistema no se pueden quitar. Se pueden crear otros 8 grupos de cargas de trabajo definidos por el usuario.
Si se crea un grupo de cargas de trabajo con min_percentage_resource
mayor que cero, la instrucción CREATE WORKLOAD GROUP
se pondrá en cola hasta que haya suficientes recursos para crear el grupo de cargas de trabajo.
Valores efectivos
Los parámetros min_percentage_resource
, cap_percentage_resource
, request_min_resource_grant_percent
y request_max_resource_grant_percent
tienen valores efectivos que se ajustan en el contexto del nivel de servicio actual y la configuración de otros grupos de cargas de trabajo.
El parámetro request_min_resource_grant_percent
tiene un valor efectivo porque se requieren los mínimos recursos por consulta según el nivel de servicio. Por ejemplo, en el nivel de servicio más bajo, DW100c, se necesita un mínimo del 25 % de recursos por solicitud. Si el grupo de cargas de trabajo está configurado con el 3 % en request_min_resource_grant_percent
y request_max_resource_grant_percent
, los valores efectivos de ambos parámetros se ajustan al 25 % cuando se inicia la instancia. Si la instancia se escala verticalmente a Dw1000c y los valores configurados y efectivos para ambos parámetros son un 3 %, porque el 3 % es el valor mínimo admitido en ese nivel de servicio. Si la instancia se escala a más de Dw1000c, los valores configurados y efectivos para ambos parámetros permanecerán en el 3 %. Vea la siguiente tabla para obtener más información sobre los valores efectivos en los diferentes niveles de servicio.
Nivel de servicio | Valor efectivo más bajo para REQUEST_MIN_RESOURCE_GRANT_PERCENT | Número máximo de consultas concurrentes |
---|---|---|
DW100c | 25 % | 4 |
DW200c | 12,5 % | 8 |
DW300c | 8 % | 12 |
DW400c | 6,25 % | 16 |
DW500c | 5 % | 20 |
DW1000c | 3 % | 32 |
DW1500c | 3 % | 32 |
DW2000c | 2 % | 48 |
DW2500c | 2 % | 48 |
DW3000c | 1,5 % | 64 |
DW5000c | 1,5 % | 64 |
DW6000c | 0,75 % | 128 |
DW7500c | 0,75 % | 128 |
DW10000c | 0,75 % | 128 |
DW15000c | 0,75 % | 128 |
DW30000c | 0,75 % | 128 |
El parámetro min_percentage_resource
debe ser mayor que el valor efectivo de request_min_resource_grant_percent
o igual a dicho valor. Un grupo de cargas de trabajo con un valor de min_percentage_resource
configurado menor que el valor efectivo de min_percentage_resource
tiene el valor ajustado en cero en tiempo de ejecución. Cuando esto sucede, los recursos configurados para min_percentage_resource
se pueden compartir entre todos los grupos de cargas de trabajo. Por ejemplo, el grupo de cargas de trabajo wgAdHoc
con un valor de min_percentage_resource
del 10 % que se ejecuta en DW1000c tendría un valor efectivo de min_percentage_resource
del 10 % (3 % es el valor mínimo admitido en DW1000c). wgAdhoc
en DW100c tendría un valor de min_percentage_resource efectivo del 0 %. El 10 % configurado para wgAdhoc
se compartiría entre todos los grupos de cargas de trabajo.
El parámetro cap_percentage_resource
también tiene un valor efectivo. Si un grupo de cargas de trabajo wgAdhoc
se configura con un valor de cap_percentage_resource
del 100 % y se crea otro grupo de cargas de trabajo wgDashboards
con un valor de min_percentage_resource
del 25 %, el valor de cap_percentage_resource
efectivo para wgAdhoc
pasa a ser del 75 %.
La forma más fácil de comprender los valores en tiempo de ejecución de los grupos de cargas de trabajo consiste en consultar la vista del sistema sys.dm_workload_management_workload_groups_stats.
Permisos
Requiere el permiso CONTROL DATABASE
.