Compartilhar via


ALTER RESOURCE GOVERNOR (Transact-SQL)

Aplica-se a:SQL ServerInstância Gerenciada de SQL do Azure

Esta instrução executa as seguintes ações do administrador de recursos:

  • Habilitar ou desabilitar o administrador de recursos.
  • Aplique as alterações de configuração especificadas quando as instruções CREATE | ALTER | DROP WORKLOAD GROUP ou CREATE | ALTER | DROP RESOURCE POOL ou CREATE | ALTER | DROP EXTERNAL RESOURCE POOL forem executadas.
  • Configure a classificação para sessões de entrada.
  • Reiniciar o grupo de carga de trabalho e as estatísticas de pool de recursos.
  • Defina o máximo de operações de E/S enfileiradas por volume de disco.

Convenções de sintaxe de Transact-SQL

Sintaxe

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

Argumentos

RECONFIGURE

Quando o administrador de recursos não está habilitado, RECONFIGURE habilita o administrador de recursos. Habilitar o administrador de recursos tem os seguintes resultados:

  • A função de classificador, se houver, é executada para novas sessões, atribuindo-as a grupos de carga de trabalho.
  • As reservas de recursos e os limites especificados na configuração do administrador de recursos são respeitados e impostos.
  • As solicitações que existiam antes de habilitar o administrador de recursos podem ser afetadas por quaisquer alterações de configuração feitas quando o administrador de recursos está habilitado.

Quando o administrador de recursos está habilitado, RECONFIGURE aplica as alterações de configuração feitas pelas instruções CREATE | ALTER | DROP WORKLOAD GROUP ou CREATE | ALTER | DROP RESOURCE POOL ou CREATE | ALTER | DROP EXTERNAL RESOURCE POOL após o uso anterior de RECONFIGURE ou após a última reinicialização do Mecanismo de Banco de Dados.

Importante

ALTER RESOURCE GOVERNOR RECONFIGURE deve ser executado para que as alterações de configuração do administrador de recursos entrem em vigor.

CLASSIFIER_FUNCTION = { schema_name.function_name | NULL }

Registra a função de classificação especificada por schema_name.function_name. Essa função classifica cada nova sessão e atribui a sessão a um grupo de carga de trabalho. Quando NULL é usado, novas sessões são atribuídas automaticamente ao grupo de carga de trabalho default.

MAX_OUTSTANDING_IO_PER_VOLUME = value

Aplica-se a: SQL Server 2014 (12.x) e posterior.

Define o máximo de operações de E/S na fila por volume de disco. Essas operações de E/S podem ser leituras ou gravações de qualquer tamanho. O valor máximo para MAX_OUTSTANDING_IO_PER_VOLUME é 100. O valor não é uma porcentagem. Essa configuração é criada para ajustar a administração do recurso de E/S às características de E/S de um volume de disco. Ele fornece uma verificação de segurança no nível do sistema que permite que o Mecanismo de Banco de Dados atenda à configuração de MIN_IOPS_PER_VOLUME especificada para pools de recursos, mesmo que outros pools tenham a configuração de MAX_IOPS_PER_VOLUME definida como ilimitada. Para obter mais informações, consulte CREATE RESOURCE POOL.

DISABLE

Desabilita o administrador de recursos. Desabilitar o administrador de recursos tem os seguintes resultados:

  • A função de classificador não é executada.
  • Todas as novas sessões de usuário são classificadas automaticamente no grupo de carga de trabalho default.
  • As sessões do sistema são classificadas no grupo de carga de trabalho internal.
  • Todas as configurações existentes do grupo de carga de trabalho e do pool de recursos são redefinidas para os valores padrão. Nenhum evento é disparado quando os limites são atingidos.
  • O monitoramento normal do sistema não é afetado.
  • Alterações de configuração do administrador de recursos podem ser feitas, mas as alterações não entrarão em vigor até que o administrador de recursos esteja habilitado.
  • Depois de reiniciar o Mecanismo de Banco de Dados, o administrador de recursos não carrega sua configuração, mas usa apenas os grupos de carga de trabalho e os pools de recursos default e internal.

RESET STATISTICS

Redefine estatísticas em todos os grupos de carga de trabalho e pools de recursos expostos em sys.dm_resource_governor_workload_groups e sys.dm_resource_governor_resource_pools.

Comentários

ALTER RESOURCE GOVERNOR não pode ser usado dentro de uma transação de usuário.

O parâmetro RECONFIGURE faz parte da sintaxe do administrador de recursos. Ele não deve ser confundido com RECONFIGURE, que é uma instrução DDL separada.

Para obter mais informações, consulte o administrador de recursos.

Permissões

Requer a permissão CONTROL SERVER.

Exemplos

Habilitar o administrador de recursos

Quando o SQL Server é instalado, o administrador de recursos é desabilitado. O exemplo a seguir habilita o administrador de recursos. Após a execução da instrução, o administrador de recursos é habilitado e usa grupos de carga de trabalho internos e pools de recursos.

ALTER RESOURCE GOVERNOR RECONFIGURE;

Atribuir novas sessões ao grupo padrão

O exemplo a seguir atribui todas as novas sessões ao grupo de carga de trabalho default removendo qualquer função de classificador existente da configuração do administrador de recursos. Quando nenhuma função é designada como uma função de classificador, todas as novas sessões de usuário são atribuídas ao grupo de carga de trabalho default. Essa alteração só se aplica a sessões novas. As sessões existentes não são afetadas.

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

Criar e registrar uma função de classificador

O exemplo a seguir cria uma função de classificador chamada dbo.rg_classifier no banco de dados master. A função classifica cada sessão nova com base no nome de usuário ou nome de aplicativo e atribui as consultas e solicitações de sessão a um grupo de carga de trabalho específico. As sessões que não são mapeadas para o usuário especificado ou nomes de aplicativos são atribuídas ao grupo de carga de trabalho padrão. A função de classificação é registrada e a alteração de configuração é aplicada.

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;

Redefinir estatísticas do administrador de recursos

O exemplo a seguir redefine todas as estatísticas do grupo de carga de trabalho e pool de recursos.

ALTER RESOURCE GOVERNOR RESET STATISTICS;

Definir a configuração de MAX_OUTSTANDING_IO_PER_VOLUME

O exemplo a seguir define a configuração de MAX_OUTSTANDING_IO_PER_VOLUME como 20 IOs.

ALTER RESOURCE GOVERNOR WITH (MAX_OUTSTANDING_IO_PER_VOLUME = 20);