

# Usar o administrador de recursos do Microsoft SQL Server para sua instância do RDS para SQL Server
<a name="ResourceGovernor.Using"></a>

Depois de adicionar a opção de administrador de recursos ao seu grupo de opções, o administrador de recursos ainda não está ativo em nível de mecanismo de banco de dados. Para habilitar totalmente o administrador de recursos, você deve usar os procedimentos armazenados do RDS para SQL Server para habilitá-lo e criar os respectivos objetos necessários. Para obter mais informações, consulte [Conectar-se à instância de banco de dados do Microsoft SQL Server](USER_ConnectToMicrosoftSQLServerInstance.md).

Primeiro, conecte-se ao banco de dados do SQL Server e, depois, chame os procedimentos armazenados apropriados do RDS para SQL Server para concluir a configuração. Para obter instruções sobre como se conectar ao banco de dados, consulte [Conectar-se à instância de banco de dados do Microsoft SQL Server](USER_ConnectToMicrosoftSQLServerInstance.md).

Para instruções sobre como chamar cada procedimento armazenado, consulte os tópicos a seguir:

**Topics**
+ [Gerenciar o grupo de recursos](#ResourceGovernor.ManageResourcePool)
+ [Gerenciar grupos de workload](#ResourceGovernor.ManageWorkloadGroups)
+ [Criar e registrar a função classificadora](#ResourceGovernor.ClassifierFunction)
+ [Eliminar função classificadora](#ResourceGovernor.DropClassifier)
+ [Cancelar registro da função classificadora](#ResourceGovernor.DeregisterClassifier)
+ [Redefinir estatísticas](#ResourceGovernor.ResetStats)
+ [Alterações na configuração do administrador de recursos](#ResourceGovernor.ConfigChanges)
+ [Vincular TempDB a um grupo de recursos](#ResourceGovernor.BindTempDB)
+ [Desvincular o TempDB de um grupo de recursos](#ResourceGovernor.UnbindTempDB)
+ [Limpar o administrador de recursos](#ResourceGovernor.Cleanup)

## Gerenciar o grupo de recursos
<a name="ResourceGovernor.ManageResourcePool"></a>

### Criar grupo de recursos
<a name="ResourceGovernor.CreateResourcePool"></a>

Depois que o administrador de recursos estiver habilitado no grupo de opções, você poderá criar grupos de recursos personalizados usando `rds_create_resource_pool`. Esses grupos permitem alocar porcentagens específicas de CPU, memória e IOPS a diferentes workloads.

**Uso**

```
USE [msdb]
EXEC dbo.rds_create_resource_pool    
    @pool_name=value,
    @MAX_CPU_PERCENT=value,
    @CAP_CPU_PERCENT=value,
    @MAX_MEMORY_PERCENT=value,
    @MAX_IOPS_PER_VOLUME=value
```

Os seguintes parâmetros são obrigatórios:
+ `@group_name`: é o nome de um grupo de workload definido pelo usuário existente.
+ `@pool_name`: é o nome definido pelo usuário para o gruo de recursos. *pool\$1name* é alfanumérico, pode ter até 128 caracteres, deve ser exclusivo em uma instância do mecanismo de banco de dados e deve estar em conformidade com as regras para identificadores de banco de dados.

Os seguintes parâmetros são opcionais:
+ `@MAX_CPU_PERCENT`: especifica a largura de banda média máxima da CPU que todas as solicitações no grupo de recursos recebem quando há contenção de CPU. *valor* é um número inteiro com uma configuração padrão de 100. O intervalo permitido para *valor* é de 1 a 100.
+ `@CAP_CPU_PERCENT`: especifica um limite rígido na largura de banda da CPU que todas as solicitações no grupo de recursos recebem. Limita o nível máximo de largura de banda da CPU para ser igual ao valor especificado. *valor* é um número inteiro com uma configuração padrão de 100. O intervalo permitido para *valor* é de 1 a 100.
+ `@MAX_MEMORY_PERCENT`: especifica a quantidade máxima de memória do espaço de trabalho de consulta que as solicitações desse grupo de recursos podem usar. *valor* é um número inteiro com uma configuração padrão de 100. O intervalo permitido para *valor* é de 1 a 100.
+ `@MAX_IOPS_PER_VOLUME`: especifica o máximo de operações de E/S por segundo (IOPS) por volume de disco permitido para o grupo de recursos. O intervalo permitido para *valor* é de 0 a 2^31-1 (2, 147, 483, 647). Especifique 0 para remover um limite de IOPS para o grupo. O padrão é 0.

**Exemplos**

Exemplo de criação de um grupo de recursos com todos os valores padrão:

```
--This creates resource pool 'SalesPool' with all default values
USE [msdb]
EXEC rds_create_resource_pool @pool_name = 'SalesPool';
     
--Apply changes
USE [msdb]
EXEC msdb.dbo.rds_alter_resource_governor_configuration;
     
--Validate configuration
select * from sys.resource_governor_resource_pools
```

Exemplo de criação de um grupo de recursos com diferentes parâmetros especificados:

```
--creates resource pool
USE [msdb]
EXEC dbo.rds_create_resource_pool    
@pool_name='analytics',
@MAX_CPU_PERCENT = 30,
@CAP_CPU_PERCENT = 40,
@MAX_MEMORY_PERCENT = 20;
            
--Apply changes
EXEC msdb.dbo.rds_alter_resource_governor_configuration;
    
--Validate configuration
select * from sys.resource_governor_resource_pools
```

### Alterar o grupo de recursos
<a name="ResourceGovernor.AlterResourcePool"></a>

**Uso**

```
USE [msdb]
EXEC dbo.rds_alter_resource_pool    
    @pool_name=value,
    @MAX_CPU_PERCENT=value,
    @CAP_CPU_PERCENT=value,
    @MAX_MEMORY_PERCENT=value,
    @MAX_IOPS_PER_VOLUME=value;
```

Os seguintes parâmetros são obrigatórios:
+ `@pool_name`: é o nome de um grupo de recursos existente definido pelo usuário. A alteração do grupo de recursos padrão não é permitida no Amazon RDS SQL Server.

Pelo menos um dos parâmetros opcionais deve ser especificado:
+ `@MAX_CPU_PERCENT`: especifica a largura de banda média máxima da CPU que todas as solicitações no grupo de recursos recebem quando há contenção de CPU. *valor* é um número inteiro com uma configuração padrão de 100. O intervalo permitido para *valor* é de 1 a 100.
+ `@CAP_CPU_PERCENT`: especifica um limite rígido na largura de banda da CPU que todas as solicitações no grupo de recursos recebem. Limita o nível máximo de largura de banda da CPU para ser igual ao valor especificado. *valor* é um número inteiro com uma configuração padrão de 100. O intervalo permitido para *valor* é de 1 a 100.
+ `@MAX_MEMORY_PERCENT`: especifica a quantidade máxima de memória do espaço de trabalho de consulta que as solicitações desse grupo de recursos podem usar. *valor* é um número inteiro com uma configuração padrão de 100. O intervalo permitido para *valor* é de 1 a 100.
+ `@MAX_IOPS_PER_VOLUME`: especifica o máximo de operações de E/S por segundo (IOPS) por volume de disco permitido para o grupo de recursos. O intervalo permitido para *valor* é de 0 a 2^31-1 (2,147,483,647). Especifique 0 para remover um limite de IOPS para o grupo. O padrão é 0.

**Exemplos**

```
--This alters resource pool
USE [msdb]
EXEC dbo.rds_alter_resource_pool    
    @pool_name='analytics',
    @MAX_CPU_PERCENT = 10,
    @CAP_CPU_PERCENT = 20,
    @MAX_MEMORY_PERCENT = 50;

--Apply changes
EXEC msdb.dbo.rds_alter_resource_governor_configuration;

--Validate configuration.
select * from sys.resource_governor_resource_pools
```

### Eliminar o grupo de recursos
<a name="ResourceGovernor.DropResourcePool"></a>

**Uso**

```
USE [msdb]
EXEC dbo.rds_drop_resource_pool    
@pool_name=value;
```

O seguinte parâmetro é obrigatório:
+ `@pool_name`: é o nome de um grupo de recursos existente definido pelo usuário.

**nota**  
A eliminação do grupo de recursos interno ou padrão não é permitida no SQL Server.

**Exemplos**

```
--This drops resource pool
USE [msdb]
EXEC dbo.rds_drop_resource_pool    
@pool_name='analytics'

--Apply changes
EXEC msdb.dbo.rds_alter_resource_governor_configuration;

--Validate configuration
select * from sys.resource_governor_resource_pools
```

## Gerenciar grupos de workload
<a name="ResourceGovernor.ManageWorkloadGroups"></a>

Grupos de workload, criados e gerenciados com `rds_create_workload_group` e `rds_alter_workload_group`, permitem que você defina níveis de importância, concessões de memória e outros parâmetros para grupos de consultas.

### Criar grupo de workload
<a name="ResourceGovernor.CreateWorkloadGroup"></a>

**Uso**

```
USE [msdb]
EXEC dbo.rds_create_workload_group 
@group_name = value, 
@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, 
@pool_name = value
```

Os seguintes parâmetros são obrigatórios:
+ `@pool_name`: é o nome de um grupo de recursos existente definido pelo usuário.
+ `@group_name`: é o nome de um grupo de workload definido pelo usuário existente.

Os seguintes parâmetros são opcionais:
+ `@IMPORTANCE`: especifica a importância relativa de uma solicitação no grupo de workload. O valor padrão é `MEDIUM`.
+ `@REQUEST_MAX_MEMORY_GRANT_PERCENT`: especifica a quantidade máxima de memória do espaço de trabalho de consulta que uma única solicitação pode ter do grupo. *valor* é uma porcentagem do tamanho do grupo de recursos definido por `MAX_MEMORY_PERCENT`. O valor padrão é 25
+ `@REQUEST_MAX_CPU_TIME_SEC`: especifica o tempo máximo de CPU, em segundos, que uma solicitação em lote pode usar. *valor* deve ser 0 ou um inteiro positivo. A configuração padrão para *valor* é 0, o que significa ilimitado.
+ `@REQUEST_MEMORY_GRANT_TIMEOUT_SEC`: especifica o tempo máximo, em segundos, que uma consulta pode esperar até que uma concessão da memória do espaço de trabalho da consulta fique disponível. *valor* deve ser 0 ou um inteiro positivo. A configuração padrão para *valor*, 0, usa um cálculo interno com base no custo da consulta para determinar o tempo máximo.
+ `@MAX_DOP`: especifica o grau máximo de paralelismo (`MAXDOP`) para execução paralela de consultas. O intervalo permitido para *valor* é de 0 a 64. A configuração padrão para *valor*, 0, usa a configuração global.
+ `@GROUP_MAX_REQUESTS`: especifica o número máximo de solicitações simultâneas que podem ser executadas no grupo de workload. *valor* deve ser 0 ou um inteiro positivo. A configuração padrão para *valor* é 0 e permite solicitações ilimitadas.
+ `@pool_name`: associa o grupo de workload ao grupo de recursos definido pelo usuário identificado por *pool\$1name* ou ao grupo de recursos `default`. Se *pool\$1name* não for fornecido, o grupo de workload será associado ao grupo `default` integrado.

**Exemplos**

```
--This creates workload group named 'analytics'
USE msdb;
EXEC dbo.rds_create_workload_group 
    @group_name = 'analytics',
    @IMPORTANCE = 'HIGH',
    @REQUEST_MAX_MEMORY_GRANT_PERCENT = 25, 
    @REQUEST_MAX_CPU_TIME_SEC = 0, 
    @REQUEST_MEMORY_GRANT_TIMEOUT_SEC = 0, 
    @MAX_DOP = 0, 
    @GROUP_MAX_REQUESTS = 0, 
    @pool_name = 'analytics';

--Apply changes
EXEC msdb.dbo.rds_alter_resource_governor_configuration;
  
--Validate configuration
select * from sys.resource_governor_workload_groups
```

### Alterar o grupo de workload
<a name="ResourceGovernor.AlterWorkloadGroup"></a>

**Uso**

```
EXEC msdb.dbo.rds_alter_workload_group
    @group_name = value,
    @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,
    @pool_name = value
```

Os seguintes parâmetros são obrigatórios:
+ `@group_name`: é o nome de um grupo de workload definido pelo usuário existente ou padrão.

**nota**  
Alterar somente o parâmetro `REQUEST_MAX_MEMORY_GRANT_PERCENT` no grupo de workload padrão é aceito. Para o grupo de workload padrão, `REQUEST_MAX_MEMORY_GRANT_PERCENT` deve estar entre 1 e 70. Nenhum outro parâmetro pode ser modificado no grupo de workload padrão. Todos os parâmetros podem ser modificados no grupo de workload definido pelo usuário.

Os seguintes parâmetros são opcionais:
+ `@IMPORTANCE`: especifica a importância relativa de uma solicitação no grupo de workload. O valor padrão é MEDIUM.
+ `@REQUEST_MAX_MEMORY_GRANT_PERCENT`: especifica a quantidade máxima de memória do espaço de trabalho de consulta que uma única solicitação pode ter do grupo. *valor* é uma porcentagem do tamanho do grupo de recursos definido por `MAX_MEMORY_PERCENT`. O valor padrão é 25 No Amazon RDS, `REQUEST_MAX_MEMORY_GRANT_PERCENT` deve estar entre 1 e 70.
+ `@REQUEST_MAX_CPU_TIME_SEC`: especifica o tempo máximo de CPU, em segundos, que uma solicitação em lote pode usar. *valor* deve ser 0 ou um inteiro positivo. A configuração padrão para *valor* é 0, o que significa ilimitado.
+ `@REQUEST_MEMORY_GRANT_TIMEOUT_SEC`: especifica o tempo máximo, em segundos, que uma consulta pode esperar até que uma concessão da memória do espaço de trabalho da consulta fique disponível. *valor* deve ser 0 ou um inteiro positivo. A configuração padrão para *valor*, 0, usa um cálculo interno com base no custo da consulta para determinar o tempo máximo.
+ `@MAX_DOP`: especifica o grau máximo de paralelismo (MAXDOP) para execução paralela de consultas. O intervalo permitido para *valor* é de 0 a 64. A configuração padrão para *valor*, 0, usa a configuração global.
+ `@GROUP_MAX_REQUESTS`: especifica o número máximo de solicitações simultâneas que podem ser executadas no grupo de workload. *valor* deve ser 0 ou um inteiro positivo. A configuração padrão para *valor* é 0 e permite solicitações ilimitadas.
+ `@pool_name`: associa o grupo de workload ao grupo de recursos definido pelo usuário identificado por *pool\$1name*.

**Exemplos**

Exemplo para modificar a alteração do grupo de workload padrão REQUEST\$1MAX\$1MEMORY\$1GRANT\$1PERCENT:

```
--Modify default workload group (set memory grant cap to 10%)
USE msdb
EXEC dbo.rds_alter_workload_group    
    @group_name = 'default',
    @REQUEST_MAX_MEMORY_GRANT_PERCENT=10;
    
--Apply changes
EXEC msdb.dbo.rds_alter_resource_governor_configuration;

--Validate configuration
SELECT * FROM sys.resource_governor_workload_groups WHERE name='default';
```

Exemplo para modificar o grupo de workload não padrão:

```
EXEC msdb.dbo.rds_alter_workload_group    
    @group_name = 'analytics',
    @IMPORTANCE = 'HIGH',
    @REQUEST_MAX_MEMORY_GRANT_PERCENT = 30,
    @REQUEST_MAX_CPU_TIME_SEC = 3600,
    @REQUEST_MEMORY_GRANT_TIMEOUT_SEC = 60,
    @MAX_DOP = 4,
    @GROUP_MAX_REQUESTS = 100;

--Apply changes
EXEC msdb.dbo.rds_alter_resource_governor_configuration;
```

Exemplo para mover um grupo de workload não padrão para outro grupo de recursos:

```
EXEC msdb.dbo.rds_alter_workload_group    
@group_name = 'analytics',
@pool_name='abc'

--Apply changes
EXEC msdb.dbo.rds_alter_resource_governor_configuration;

--Validate configuration
select * from sys.resource_governor_workload_groups
```

### Eliminar um grupo de workload
<a name="ResourceGovernor.DropWorkloadGroup"></a>

**Uso**

```
EXEC msdb.dbo.rds_drop_workload_group    
@group_name = value
```

Os seguintes parâmetros são obrigatórios:
+ `@group_name`: é o nome de um grupo de workload definido pelo usuário existente.

**Exemplos**

```
--Drops a Workload Group:
EXEC msdb.dbo.rds_drop_workload_group    
@group_name = 'analytics';

--Apply changes
EXEC msdb.dbo.rds_alter_resource_governor_configuration;

--Validate configuration
select * from sys.resource_governor_workload_groups
```

## Criar e registrar a função classificadora
<a name="ResourceGovernor.ClassifierFunction"></a>

Esse procedimento cria uma função classificadora do administrador de recursos no banco de dados principal que direciona as conexões para grupos de workload personalizados com base em critérios especificados (nome do usuário, banco de dados, host ou nome da aplicação). Se o administrador de recursos estiver habilitado e uma função classificadora for especificada na configuração do administrador de recursos, a saída da função determinará o grupo de workload usado para novas sessões. Na ausência de uma função classificadora, todas as sessões são classificadas no grupo `default`.

**Recursos:**
+ Comporta até dois grupos de workload com as respectivas condições de roteamento.
+ Combina critérios com condições `AND` dentro de cada grupo.
+ Requer pelo menos um critério de roteamento por grupo de workload.
+ O nome da função deve começar com `rg_classifier_`.
+ Atribuição de grupo padrão se nenhuma condição coincidir.

A função classificadora tem as seguintes características e comportamentos:
+ A função é definida no escopo do servidor (no banco de dados principal).
+ A função é definida com associação de esquema.
+ A função é avaliada para cada nova sessão, mesmo quando o grupo de conexões está habilitado.
+ A função exibe o contexto do grupo de workload da sessão. A sessão é atribuída ao grupo de workload exibido pelo classificador durante a vida útil da sessão.
+ Se a função exibir NULL, padrão ou o nome de um grupo de workload inexistente, a sessão receberá o contexto padrão do grupo de workload. A sessão também receberá o contexto padrão se a função falhar por qualquer motivo.
+ É possível criar várias funções classificadoras. No entanto, o SQL Server permite que somente uma função classificadora seja registrada por vez.
+ A função classificadora não pode ser descartada, a menos que seu status de classificador seja removido usando o procedimento de cancelamento de registro (`EXEC dbo.msdb.rds_alter_resource_governor_configuration @deregister_function = 1;`) que define o nome da função como NULL ou outra função classificadora seja registrada usando (`EXEC dbo.msdb.rds_alter_resource_governor_configuration @classifier_function = <function_name>;`).
+ Na ausência de uma função classificadora, todas as sessões são classificadas no grupo padrão.
+ Você não pode modificar uma função classificadora enquanto ela é referida na configuração do administrador de recursos. No entanto, é possível modificar a configuração para usar uma função classificadora diferente. Se você quiser fazer alterações no classificador, pense em criar um par de funções classificadoras. Por exemplo, você pode criar `rg_classifier_a` e `rg_classifier_b`.

**Uso**

```
EXEC msdb.dbo.rds_create_classifier_function 
@function_name = value,
@workload_group1 = value, 
@user_name1 = value,
@db_name1 = value,
@host_name1 = value, 
@app_name1 = value, 
@workload_group2 = value,
@user_name2 = value,
@db_name2 = value,
@host_name2 = value,
@app_name2 = value
```

Os seguintes parâmetros são obrigatórios:
+ `@function_name`: nome da função classificadora. Deve começar com `rg_classifier_`
+ `@workload_group1`: nome do primeiro grupo de workload.

Os seguintes parâmetros são opcionais:

(Pelo menos um desses critérios deve ser especificado para o grupo 1.)
+ `@user_name1`: nome de login para o grupo 1.
+ `@db_name1`: nome do banco de dados para o grupo 1.
+ `@host_name1`: nome do host para o grupo 1.
+ `@app_name1`: nome da aplicação para o grupo 1.

(Se o grupo 2 for especificado, pelo menos, um critério deve ser fornecido.)
+ `@workload_group2`: nome do segundo grupo de workload.
+ `@user_name2`: nome de login para o grupo 2.
+ `@db_name2`: nome do banco de dados para o grupo 2.
+ `@host_name2`: nome do host para o grupo 2.
+ `@app_name2`: nome da aplicação para o grupo 2.

**nota**  
As contas do sistema, bancos de dados, aplicações e host são restritos.

**Exemplos**

Exemplo básico com um grupo de workload:

```
/*Create a classifier to route all requests from 'PowerBI' app to workload group 
'reporting_group'*/

EXEC msdb.dbo.rds_create_classifier_function
@function_name = 'rg_classifier_a',
@workload_group1 = 'reporting_group',
@app_name1 = 'PowerBI';

--Register the classifier
EXEC msdb.dbo.rds_alter_resource_governor_configuration
@classifier_function = 'rg_classifier_a';

-- Apply changes
EXEC msdb.dbo.rds_alter_resource_governor_configuration

/*Query sys.resource_governor_configuration to validate that resource governor is enabled and is using the classifier function we created and registered*/

use master
go
SELECT OBJECT_SCHEMA_NAME(classifier_function_id) AS classifier_schema_name,
       OBJECT_NAME(classifier_function_id) AS classifier_object_name,
       is_enabled
FROM sys.resource_governor_configuration;
```

## Eliminar função classificadora
<a name="ResourceGovernor.DropClassifier"></a>

**Uso**

```
USE [msdb]
EXEC dbo.rds_drop_classifier_function
@function_name = value;
```

O seguinte parâmetro é obrigatório:
+ `@function_name`: é o nome de uma função classificadora existente definida pelo usuário.

**Exemplo**

```
EXEC msdb.dbo.rds_drop_classifier_function
@function_name = 'rg_classifier_b';
```

## Cancelar registro da função classificadora
<a name="ResourceGovernor.DeregisterClassifier"></a>

Use esse procedimento para cancelar o registro da função classificadora. Depois que o registro da função for cancelado, novas sessões serão automaticamente atribuídas ao grupo de workload padrão.

**Uso**

```
USE [msdb]
EXEC dbo.rds_alter_resource_governor_configuration    
@deregister_function = 1;
```

Para cancelar o registro, o seguinte parâmetro é obrigatório:
+ `@deregister_function` deve ser 1.

**Exemplo**

```
EXEC msdb.dbo.rds_alter_resource_governor_configuration 
    @deregister_function = 1;
GO

-- Apply changes
EXEC msdb.dbo.rds_alter_resource_governor_configuration;
```

## Redefinir estatísticas
<a name="ResourceGovernor.ResetStats"></a>

As estatísticas do administrador de recursos são cumulativas desde a última reinicialização do servidor. Se precisar coletar estatísticas a partir de determinado momento, você poderá redefinir as estatísticas usando o procedimento armazenado do Amazon RDS a seguir.

**Uso**

```
USE [msdb]
EXEC dbo.rds_alter_resource_governor_configuration  
@reset_statistics = 1;
```

Para ver as estatísticas de redefinição, o seguinte parâmetro é necessário:
+ `@reset_statistics` deve ser 1.

## Alterações na configuração do administrador de recursos
<a name="ResourceGovernor.ConfigChanges"></a>

Quando o administrador de recursos não está habilitado, `rds_alter_resource_governor_configuration` habilita o administrador de recursos. A desativação do administrador de recursos tem os seguintes resultados:
+ A função classificadora, se houver, é executada para novas sessões, atribuindo-as a grupos de workload.
+ Os limites de recursos especificados na configuração do administrador de recursos são respeitados e aplicados.
+ Os limites de recursos especificados na configuração do administrador de recursos são respeitados e aplicados.
+ As solicitações que existiam antes da ativação do administrador de recursos podem ser afetadas por quaisquer alterações de configuração feitas quando o administrador de recursos está habilitado.
+ As solicitações que existiam antes da ativação do administrador de recursos podem ser afetadas por quaisquer alterações de configuração feitas quando o administrador de recursos está habilitado.
+ No RDS para SQL Server, `EXEC msdb.dbo.rds_alter_resource_governor_configuration` deve ser executado para que qualquer alteração na configuração do administrador de recursos tenha efeito. 

**Uso**

```
USE [msdb]
EXEC dbo.rds_alter_resource_governor_configuration
```

## Vincular TempDB a um grupo de recursos
<a name="ResourceGovernor.BindTempDB"></a>

Você pode vincular metadados otimizados para memória tempdb a um grupo de recursos específico usando `rds_bind_tempdb_metadata_to_resource_pool` no Amazon RDS SQL Server versão 2019 e posterior.

**nota**  
O recurso de metadados tempdb otimizado para memória deve ser habilitado antes de vincular os metadados tempdb ao grupo de recursos. Para habilitar esse recurso no Amazon RDS, trata-se de um parâmetro estático `tempdb metadata memory-optimized`.

Habilite o parâmetro estático no Amazon RDS e realize uma reinicialização sem failover para que o parâmetro entre em vigor:

```
aws rds modify-db-parameter-group \
    --db-parameter-group-name test-sqlserver-ee-2022 \
    --parameters "ParameterName='tempdb metadata memory-optimized',ParameterValue=True,ApplyMethod=pending-reboot"
```

**Uso**

```
USE [msdb]
EXEC dbo.rds_bind_tempdb_metadata_to_resource_pool  
@pool_name=value;
```

O seguinte parâmetro é obrigatório:
+ `@pool_name`: é o nome de um grupo de recursos existente definido pelo usuário.

**nota**  
Essa alteração também exige que a reinicialização do serviço sql sem failover entre em vigor, mesmo que o recurso de metadados TempDB otimizado para memória já esteja habilitado.

## Desvincular o TempDB de um grupo de recursos
<a name="ResourceGovernor.UnbindTempDB"></a>

Desvincule metadados otimizados para memória tempdb de um grupo de recursos.

**nota**  
Essa alteração também requer a reinicialização do serviço sql sem failover para entrar em vigor.

**Uso**

```
USE [msdb]
EXEC dbo.rds_unbind_tempdb_metadata_from_resource_pool
```

## Limpar o administrador de recursos
<a name="ResourceGovernor.Cleanup"></a>

Esse procedimento é utilizado para limpar todos os objetos associados depois de remover a opção de administrador de recursos do grupo de opções. Isso desabilita o administrador de recursos, reverte o grupo de carga de workload padrão para as configurações padrão, remove grupos de workload personalizados, grupos de recursos e funções classificadoras.

**Atributos principais**
+ Reverte o grupo de workload padrão para as configurações padrão.
+ Desabilita o administrador de recursos.
+ Remove grupos de workload personalizados.
+ Remove grupos de recursos personalizados.
+ Elimina funções classificadoras.
+ Remove a vinculação do grupo de recursos tempdb, se habilitada.

**Importante**  
Essa limpeza poderá causar um erro se houver sessões ativas no grupo de workload. Aguarde o término das sessões ativas ou encerre as sessões ativas de acordo com suas necessidades comerciais. É recomendável realizar isso durante a janela de manutenção.   
Essa limpeza poderá gerar um erro se um grupo de recursos estiver vinculado ao tempdb e a reinicialização sem failover ainda não tiver ocorrido. Se você vinculou um grupo de recursos ao tempdb ou o desvinculou do tempdb anteriormente, realize a reinicialização sem failover para que a alteração seja implementada. É recomendável realizar isso durante a janela de manutenção.

**Uso**

```
USE [msdb]
EXEC dbo.rds_cleanup_resource_governor
```