ALTER RESOURCE GOVERNOR (Transact-SQL)
Se aplica a:SQL ServerAzure SQL Managed Instance
Esta instrucción realiza las siguientes acciones del regulador de recursos:
- Habilite o deshabilite el regulador de recursos.
- Aplique los cambios de configuración especificados cuando se ejecuten las instrucciones
CREATE | ALTER | DROP WORKLOAD GROUP
oCREATE | ALTER | DROP RESOURCE POOL
oCREATE | ALTER | DROP EXTERNAL RESOURCE POOL
. - Configure la clasificación para las sesiones entrantes.
- Restablece las estadísticas de los grupos de cargas de trabajo y los grupos de recursos.
- Establezca el número máximo de operaciones de E/S en cola por volumen de disco.
Convenciones de sintaxis de Transact-SQL
Sintaxis
ALTER RESOURCE GOVERNOR
{ RECONFIGURE
[ WITH
( [ CLASSIFIER_FUNCTION = { schema_name.function_name | NULL } ]
[ [ , ] MAX_OUTSTANDING_IO_PER_VOLUME = value ]
)
]
| DISABLE
| RESET STATISTICS
}
[ ; ]
Argumentos
RECONFIGURE
Cuando el regulador de recursos no está habilitado, RECONFIGURE
habilita el regulador de recursos. La habilitación del regulador de recursos tiene los siguientes resultados:
- La función clasificadora, si existe, se ejecuta para las nuevas sesiones, asignándolas a grupos de cargas de trabajo.
- Se respetan y aplican las reservas de recursos y los límites especificados en la configuración del regulador de recursos.
- Las solicitudes que existían antes de habilitar el regulador de recursos podrían verse afectadas por los cambios de configuración realizados cuando el regulador de recursos está habilitado.
Cuando el regulador de recursos está habilitado, RECONFIGURE
aplica los cambios de configuración realizados por las instrucciones CREATE | ALTER | DROP WORKLOAD GROUP
o CREATE | ALTER | DROP RESOURCE POOL
o CREATE | ALTER | DROP EXTERNAL RESOURCE POOL
después del uso anterior de RECONFIGURE
o después del último reinicio del motor de base de datos.
Importante
ALTER RESOURCE GOVERNOR RECONFIGURE
deben ejecutarse para que los cambios de configuración del regulador de recursos surtan efecto.
CLASSIFIER_FUNCTION = { schema_name.function_name | NULL }
Registra la función clasificadora especificada por schema_name.function_name. Esta función clasifica cada nueva sesión y asigna la sesión a un grupo de cargas de trabajo. Cuando se usa NULL
, las nuevas sesiones se asignan automáticamente al grupo de cargas de trabajo de default
.
MAX_OUTSTANDING_IO_PER_VOLUME = value
Válido para : SQL Server 2014 (12.x) y versiones posteriores.
Establece la cantidad máxima de operaciones de E/S en cola por volumen de disco. Estas operaciones de E/S pueden ser lecturas o escrituras de cualquier tamaño. El valor máximo de MAX_OUTSTANDING_IO_PER_VOLUME
es 100. El valor no es un porcentaje. Este valor está diseñado para optimizar la gobernanza de recursos de E/S según las características de E/S de un volumen de disco. Proporciona una comprobación de seguridad de nivel de sistema que permite que el motor de base de datos cumpla la configuración de MIN_IOPS_PER_VOLUME
especificada para los grupos de recursos, incluso si otros grupos tienen el valor de MAX_IOPS_PER_VOLUME
establecido en ilimitado. Para obtener más información, consulte CREATE RESOURCE POOL.
DISABLE
Deshabilita el regulador de recursos. Deshabilitar el regulador de recursos tiene los siguientes resultados:
- La función clasificadora no se ejecuta.
- Todas las sesiones de usuario nuevas se clasifican automáticamente en el grupo de cargas de trabajo
default
. - Las sesiones del sistema se clasifican en el grupo de cargas de trabajo de
internal
. - Se restablecen los valores predeterminados de todas las configuraciones existentes del grupo de cargas de trabajo y el grupo de recursos de servidor. No se desencadena ningún evento cuando se alcanzan los límites.
- La supervisión normal del sistema no se ve afectada.
- Se pueden realizar cambios de configuración del regulador de recursos, pero los cambios no surten efecto hasta que el regulador de recursos esté habilitado.
- Después de reiniciar el motor de base de datos, el regulador de recursos no carga su configuración, sino que solo usa el
default
yinternal
grupos de cargas de trabajo y grupos de recursos.
RESET STATISTICS
Restablece las estadísticas de todos los grupos de cargas de trabajo y grupos de recursos expuestos en sys.dm_resource_governor_workload_groups y sys.dm_resource_governor_resource_pools.
Comentarios
ALTER RESOURCE GOVERNOR
no se puede usar dentro de una transacción de usuario.
El parámetro RECONFIGURE
forma parte de la sintaxis del regulador de recursos. No debe confundirse con RECONFIGURE, que es una instrucción DDL independiente.
Para obtener más información, consulte regulador de recursos.
Permisos
Requiere el permiso CONTROL SERVER
.
Ejemplos
Habilitación del regulador de recursos
Cuando se instala SQL Server, el regulador de recursos está deshabilitado. En el ejemplo siguiente se habilita el regulador de recursos. Una vez ejecutada la instrucción , el regulador de recursos está habilitado y usa grupos de cargas de trabajo y grupos de recursos integrados.
ALTER RESOURCE GOVERNOR RECONFIGURE;
Asignar nuevas sesiones al grupo predeterminado
En el ejemplo siguiente se asignan todas las sesiones nuevas al grupo de cargas de trabajo de default
quitando cualquier función clasificadora existente de la configuración del regulador de recursos. Cuando no se designa ninguna función como una función clasificadora, todas las sesiones de usuario nuevas se asignan al grupo de cargas de trabajo de default
. Este cambio solo se aplica a las sesiones nuevas. Las sesiones existentes no se ven afectadas.
ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION = NULL);
ALTER RESOURCE GOVERNOR RECONFIGURE;
Creación y registro de una función clasificadora
En el ejemplo siguiente se crea una función clasificadora denominada dbo.rg_classifier
en la base de datos master
. La función clasifica cada nueva sesión basándose en el nombre de usuario o en el nombre de aplicación y asigna las solicitudes de sesión y las consultas a un grupo de cargas de trabajo concreto. Las sesiones que no se corresponden con los nombres de usuario o de aplicación especificados se asignan al grupo de cargas de trabajo predeterminado. A continuación, se registra la función clasificadora y se aplica el cambio de configuración.
USE master;
GO
CREATE FUNCTION dbo.rg_classifier()
RETURNS sysname
WITH SCHEMABINDING
AS
BEGIN
-- Declare the variable for the function return value.
DECLARE @grp_name AS sysname;
-- If the login name is 'sa', classify the session into the groupAdmin workload group
IF (SUSER_NAME() = 'sa')
SET @grp_name = 'groupAdmin';
-- Classify SSMS sessions into the groupAdhoc workload group
ELSE IF UPPER(APP_NAME()) LIKE '%MANAGEMENT STUDIO%'
SET @grp_name = 'groupAdhoc';
-- Classify SSRS sessions into groupReports workload group
ELSE IF UPPER(APP_NAME()) LIKE '%REPORT SERVER%'
SET @grp_name = 'groupReports';
-- Otherwise, classify the session into the default workload group
ELSE
SET @grp_name = 'default';
-- Return the name of the workload group
RETURN @grp_name;
END;
GO
-- Register the classifier function and update resource governor configuration
ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION = dbo.rg_classifier);
ALTER RESOURCE GOVERNOR RECONFIGURE;
Restablecimiento de las estadísticas del regulador de recursos
En el ejemplo siguiente, se restablecen las estadísticas de todos los grupos de cargas de trabajo y los grupos de recursos.
ALTER RESOURCE GOVERNOR RESET STATISTICS;
Configuración de la configuración de MAX_OUTSTANDING_IO_PER_VOLUME
En el ejemplo siguiente se establece el valor de MAX_OUTSTANDING_IO_PER_VOLUME
en 20 E/S.
ALTER RESOURCE GOVERNOR WITH (MAX_OUTSTANDING_IO_PER_VOLUME = 20);
Contenido relacionado
- del regulador de recursos
- ejemplos de configuración del regulador de recursos y procedimientos recomendados
- CREATE RESOURCE POOL
- ALTER RESOURCE POOL
- DROP RESOURCE POOL
- CREATE EXTERNAL RESOURCE POOL
- DROP EXTERNAL RESOURCE POOL
- ALTER EXTERNAL RESOURCE POOL
- CREATE WORKLOAD GROUP
- ALTER WORKLOAD GROUP
- DROP WORKLOAD GROUP
- sys.dm_resource_governor_workload_groups
- sys.dm_resource_governor_resource_pools