ALTER RESOURCE GOVERNOR (Transact-SQL)

Este comando se utiliza para realizar las acciones siguientes:

  • Aplicar los cambios de configuración especificados cuando se emiten instrucciones CREATE|ALTER|DROP WORKLOAD GROUP o CREATE|ALTER|DROP RESOURCE POOL.

  • Habilitar o deshabilitar el regulador de recursos.

  • Configurar la clasificación de las solicitudes entrantes.

  • Restablecer las estadísticas de los grupos de cargas de trabajo y los grupos de recursos.

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

Sintaxis

ALTER RESOURCE GOVERNOR 
    { DISABLE | RECONFIGURE }
|
    WITH ( CLASSIFIER_FUNCTION = { schema_name.function_name | NULL } )
|
    RESET STATISTICS
[ ; ]

Argumentos

Término

Definición

DISABLE | RECONFIGURE

DISABLE deshabilita el regulador de recursos. Deshabilitar el regulador de recursos tiene como consecuencia lo siguiente:

  • No se ejecuta la función clasificadora.

  • Todas las conexiones nuevas se clasifican automáticamente en el grupo predeterminado.

  • Las solicitudes iniciadas por el sistema se clasifican en el grupo de cargas de trabajo interno.

  • Se restablecen los valores predeterminados de todas las configuraciones existentes del grupo de cargas de trabajo y el grupo de recursos de servidor. En este caso, no se desencadena ningún evento cuando se alcanzan los límites.

  • La supervisión normal del sistema no resulta afectada.

  • Se puede cambiar la configuración, pero los cambios no surtirán efecto hasta que se habilite el regulador de recursos.

  • Al reiniciar SQL Server, el regulador de recursos no cargará su configuración, sino que tendrá únicamente los grupos de cargas de trabajo y los grupos de recursos de servidor predeterminados e internos.

Si el regulador de recursos no está habilitado, RECONFIGURE lo habilita. Habilitar el regulador de recursos tiene como consecuencia lo siguiente:

  • La función clasificadora se ejecuta para las nuevas conexiones, de forma que se puede asignar su carga de trabajo a los grupos de cargas de trabajo.

  • Se respetan y se aplican los límites de los recursos especificados en la configuración del regulador de recursos.

  • Las solicitudes que existieran antes de habilitar el regulador de recursos resultarán afectadas por cualquier cambio realizado en la configuración en el momento de deshabilitar el regulador de recursos.

Mientras se ejecuta el regulador de recursos, RECONFIGURE aplica los cambios de configuración solicitados al ejecutar las instrucciones CREATE|ALTER|DROP WORKLOAD GROUP o CREATE|ALTER|DROP RESOURCE POOL.

Nota importanteImportante
Debe enviarse ALTER RESOURCE GOVERNOR RECONFIGURE para que surtan efecto los cambios en la configuración.

CLASSIFIER_FUNCTION = { schema_name.function_name | NULL }

Registra la función clasificadora especificada por schema_name.function_name. Esta función clasifica cada sesión nueva y asigna las solicitudes de sesión y las consultas para un grupo de cargas de trabajo. Si se usa NULL, las nuevas sesiones se asignan automáticamente al grupo de cargas de trabajo predeterminado.

RESET STATISTICS

Restablece las estadísticas de todos los grupos de cargas de trabajo y los grupos de recursos de servidor. Para obtener más información, vea sys.dm_resource_governor_workload_groups (Transact-SQL) y sys.dm_resource_governor_resource_pools (Transact-SQL).

Comentarios

ALTER RESOURCE GOVERNOR DISABLE, ALTER RESOURCE GOVENOR RECONFIGURE y ALTER RESOURCE GOVERNOR RESET STATISTICS no se pueden usar en una transacción de usuario.

El parámetro RECONFIGURE forma parte de la sintaxis del regulador de recursos y no debe confundirse con RECONFIGURE (Transact-SQL), que es una instrucción DDL independiente.

Se recomienda familiarizarse con los estados del regulador de recursos antes de ejecutar las instrucciones de DDL. Para obtener más información, vea Estados del regulador de recursos.

Permisos

Requiere el permiso CONTROL SERVER.

Ejemplos

A. Iniciar el regulador de recursos

La primera vez que se instala SQL Server, el regulador de recursos está deshabilitado. En el ejemplo siguiente, se inicia regulador de recursos. Después de ejecutar la instrucción, el regulador de recursos se ejecuta y puede usar los grupos de recursos de servidor y los grupos de cargas de trabajo predefinidos.

ALTER RESOURCE GOVERNOR RECONFIGURE;

B. Asignar nuevas sesiones al grupo predeterminado

En el ejemplo siguiente, se asignan todas las sesiones nuevas al grupo de cargas de trabajo predeterminado; para ello, se quitan las funciones clasificadoras existentes de la configuración del regulador de recursos. Cuando no se designa ninguna función como función clasificadora, todas las sesiones nuevas se asignan al grupo de cargas de trabajo predeterminado. Este cambio solo se aplica a las sesiones nuevas. Las sesiones existentes no resultan afectadas.

ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION = NULL);
GO
ALTER RESOURCE GOVERNOR RECONFIGURE;

C. Crear y registrar una función clasificadora

En el ejemplo siguiente, se crea una función clasificadora denominada dbo.rgclassifier_v1. 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.

-- Store the classifier function in the master database.
USE master;
GO
SET ANSI_NULLS ON;
GO
SET QUOTED_IDENTIFIER ON;
GO
CREATE FUNCTION dbo.rgclassifier_v1() RETURNS sysname 
WITH SCHEMABINDING
AS
BEGIN
-- Declare the variable to hold the value returned in sysname.
    DECLARE @grp_name AS sysname
-- If the user login is 'sa', map the connection to the groupAdmin
-- workload group. 
    IF (SUSER_NAME() = 'sa')
        SET @grp_name = 'groupAdmin'
-- Use application information to map the connection to the groupAdhoc
-- workload group.
    ELSE IF (APP_NAME() LIKE '%MANAGEMENT STUDIO%')
        OR (APP_NAME() LIKE '%QUERY ANALYZER%')
            SET @grp_name = 'groupAdhoc'
-- If the application is for reporting, map the connection to
-- the groupReports workload group.
    ELSE IF (APP_NAME() LIKE '%REPORT SERVER%')
        SET @grp_name = 'groupReports'
-- If the connection does not map to any of the previous groups,
-- put the connection into the default workload group.
    ELSE
        SET @grp_name = 'default'
    RETURN @grp_name
END
GO
-- Register the classifier user-defined function and update the 
-- the in-memory configuration.
ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION=dbo.rgclassifier_v1);
GO
ALTER RESOURCE GOVERNOR RECONFIGURE;
GO

D. Restablecer las estadísticas

En el ejemplo siguiente, se restablecen las estadísticas de todos los grupos de cargas de trabajo y los grupos de recursos de servidor.

ALTER RESOURCE GOVERNOR RESET STATISTICS;