Compartir a través de


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 o CREATE | ALTER | DROP RESOURCE POOL o CREATE | 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 y internal 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);