

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Verwenden des Microsoft SQL Server-Resource Governor für Ihre RDS for SQL Server-Instanz
<a name="ResourceGovernor.Using"></a>

Nachdem Sie Ihrer Optionsgruppe die Option Resource Governor hinzugefügt haben, ist der Resource Governor auf Datenbank-Engine-Ebene noch nicht aktiv. Um die Ressourcenkontrolle vollständig zu aktivieren, müssen Sie RDS für gespeicherte SQL Server-Prozeduren verwenden, um sie zu aktivieren und die erforderlichen Ressourcenüberwachungsobjekte zu erstellen. Weitere Informationen finden Sie unter [Herstellen einer Verbindung mit Ihrer DB-Instance von Microsoft SQL Server](USER_ConnectToMicrosoftSQLServerInstance.md).

Stellen Sie zunächst eine Verbindung zu Ihrer SQL Server-Datenbank her und rufen Sie dann die entsprechenden RDS für gespeicherte SQL Server-Prozeduren auf, um die Konfiguration abzuschließen. Anleitungen zum Herstellen einer Verbindung zu Ihrer Datenbank finden Sie unter [Herstellen einer Verbindung mit Ihrer DB-Instance von Microsoft SQL Server](USER_ConnectToMicrosoftSQLServerInstance.md).

Anleitungen zum Aufrufen der einzelnen gespeicherten Prozeduren finden Sie in den folgenden Themen:

**Topics**
+ [Ressourcenpool verwalten](#ResourceGovernor.ManageResourcePool)
+ [Arbeitslast-Gruppen verwalten](#ResourceGovernor.ManageWorkloadGroups)
+ [Erstellen und registrieren Sie die Klassifikatorfunktion](#ResourceGovernor.ClassifierFunction)
+ [Klassifikatorfunktion löschen](#ResourceGovernor.DropClassifier)
+ [De-register Klassifikator-Funktion](#ResourceGovernor.DeregisterClassifier)
+ [Statistik zurücksetzen](#ResourceGovernor.ResetStats)
+ [Änderungen an der Konfiguration des Resource Governors](#ResourceGovernor.ConfigChanges)
+ [Binden Sie TempDB an einen Ressourcenpool](#ResourceGovernor.BindTempDB)
+ [Trennen Sie TempDB von einem Ressourcenpool](#ResourceGovernor.UnbindTempDB)
+ [Ressourcenverwaltung für die Bereinigung](#ResourceGovernor.Cleanup)

## Ressourcenpool verwalten
<a name="ResourceGovernor.ManageResourcePool"></a>

### Ressourcenpool erstellen
<a name="ResourceGovernor.CreateResourcePool"></a>

Sobald die Ressourcenkontrolle für die Optionsgruppe aktiviert ist, können Sie benutzerdefinierte Ressourcenpools mithilfe von erstellen`rds_create_resource_pool`. Mit diesen Pools können Sie verschiedenen Workloads bestimmte Prozentsätze an CPU, Arbeitsspeicher und IOPS zuweisen.

**Usage**

```
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
```

Die folgenden Parameter sind erforderlich:
+ `@group_name`— Ist der Name einer vorhandenen benutzerdefinierten Workload-Gruppe.
+ `@pool_name`— Ist der benutzerdefinierte Name für den Ressourcenpool. {{pool\_name}}ist alphanumerisch, kann bis zu 128 Zeichen lang sein, muss innerhalb einer Database Engine-Instanz eindeutig sein und muss den Regeln für Datenbankbezeichner entsprechen.

Die folgenden Parameter sind optional:
+ `@MAX_CPU_PERCENT`— Gibt die maximale durchschnittliche CPU-Bandbreite an, die alle Anforderungen im Ressourcenpool erhalten, wenn ein CPU-Konflikt besteht. {{value}}ist eine Ganzzahl mit einer Standardeinstellung von 100. Der zulässige Bereich für {{value}} liegt zwischen 1 und 100.
+ `@CAP_CPU_PERCENT`— Gibt eine feste Obergrenze für die CPU-Bandbreite an, die alle Anforderungen im Ressourcenpool erhalten. Begrenzt die maximale CPU-Bandbreite so, dass sie dem angegebenen Wert entspricht. {{value}}ist eine Ganzzahl mit einer Standardeinstellung von 100. Der zulässige Bereich für {{value}} liegt zwischen 1 und 100.
+ `@MAX_MEMORY_PERCENT`— Gibt die maximale Menge an Abfrage-Workspace-Speicher an, die Anforderungen in diesem Ressourcenpool verwenden können. {{value}}ist eine Ganzzahl mit einer Standardeinstellung von 100. Der zulässige Bereich für {{value}} liegt zwischen 1 und 100.
+ `@MAX_IOPS_PER_VOLUME`— Gibt die maximale Anzahl an I/O Vorgängen pro Sekunde (IOPS) pro Festplattenvolume an, um den Ressourcenpool zu berücksichtigen. Der zulässige Bereich für {{value}} liegt zwischen 0 und 2^31-1 (2.147.483.647). Geben Sie 0 an, um ein IOPS-Limit für den Pool zu entfernen. Der Standardwert ist 0.

**Beispiele**

Beispiel für die Erstellung eines Ressourcenpools mit allen Standardwerten:

```
--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
```

Beispiel für die Erstellung eines Ressourcenpools mit verschiedenen angegebenen Parametern:

```
--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
```

### Ändern Sie den Ressourcenpool
<a name="ResourceGovernor.AlterResourcePool"></a>

**Usage**

```
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;
```

Die folgenden Parameter sind erforderlich:
+ `@pool_name`— Ist der Name eines vorhandenen benutzerdefinierten Ressourcenpools. Das Ändern des Standard-Ressourcenpools ist in Amazon RDS SQL Server nicht zulässig.

Mindestens einer der optionalen Parameter muss angegeben werden:
+ `@MAX_CPU_PERCENT`— Gibt die maximale durchschnittliche CPU-Bandbreite an, die alle Anforderungen im Ressourcenpool erhalten, wenn ein CPU-Konflikt besteht. {{value}}ist eine Ganzzahl mit einer Standardeinstellung von 100. Der zulässige Bereich für {{value}} liegt zwischen 1 und 100.
+ `@CAP_CPU_PERCENT`— Gibt eine feste Obergrenze für die CPU-Bandbreite an, die alle Anforderungen im Ressourcenpool erhalten. Begrenzt die maximale CPU-Bandbreite so, dass sie dem angegebenen Wert entspricht. {{value}}ist eine Ganzzahl mit einer Standardeinstellung von 100. Der zulässige Bereich für {{value}} liegt zwischen 1 und 100.
+ `@MAX_MEMORY_PERCENT`— Gibt die maximale Menge an Abfrage-Workspace-Speicher an, die Anforderungen in diesem Ressourcenpool verwenden können. {{value}}ist eine Ganzzahl mit einer Standardeinstellung von 100. Der zulässige Bereich für {{value}} liegt zwischen 1 und 100.
+ `@MAX_IOPS_PER_VOLUME`— Gibt die maximale Anzahl an I/O Vorgängen pro Sekunde (IOPS) pro Festplattenvolume an, um den Ressourcenpool zu berücksichtigen. Der zulässige Bereich für {{value}} liegt zwischen 0 und 2^31-1 (2.147.483.647). Geben Sie 0 an, um ein IOPS-Limit für den Pool zu entfernen. Der Standardwert ist 0.

**Beispiele**

```
--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
```

### Den Ressourcenpool löschen
<a name="ResourceGovernor.DropResourcePool"></a>

**Usage**

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

Der folgende Parameter ist erforderlich:
+ `@pool_name`— Ist der Name eines vorhandenen benutzerdefinierten Ressourcenpools.

**Anmerkung**  
Das Löschen des internen oder standardmäßigen Ressourcenpools ist in SQL Server nicht zulässig.

**Beispiele**

```
--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
```

## Arbeitslast-Gruppen verwalten
<a name="ResourceGovernor.ManageWorkloadGroups"></a>

Workload-Gruppen, die mit und erstellt `rds_create_workload_group` und verwaltet werden`rds_alter_workload_group`, ermöglichen es Ihnen, Wichtigkeitsstufen, Speicherzuweisungen und andere Parameter für Gruppen von Abfragen festzulegen.

### Workload-Gruppe erstellen
<a name="ResourceGovernor.CreateWorkloadGroup"></a>

**Usage**

```
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, 
@GROUP_MAX_TEMPDB_DATA_MB = value, 
@GROUP_MAX_TEMPDB_DATA_PERCENT = value, 
@pool_name = value
```

Die folgenden Parameter sind erforderlich:
+ `@pool_name`— Ist der Name eines vorhandenen benutzerdefinierten Ressourcenpools.
+ `@group_name`— Ist der Name einer vorhandenen benutzerdefinierten Workload-Gruppe.

Die folgenden Parameter sind optional:
+ `@IMPORTANCE`— Gibt die relative Wichtigkeit einer Anfrage in der Workload-Gruppe an. Der Standardwert ist `MEDIUM`.
+ `@REQUEST_MAX_MEMORY_GRANT_PERCENT`— Gibt die maximale Menge an Abfrage-Workspace-Speicher an, die eine einzelne Anforderung aus dem Pool beanspruchen kann. {{value}}ist ein Prozentsatz der Größe des Ressourcenpools, definiert durch`MAX_MEMORY_PERCENT`. Der Standardwert ist 25.
+ `@REQUEST_MAX_CPU_TIME_SEC`— Gibt die maximale CPU-Zeit in Sekunden an, die eine Batch-Anfrage verwenden kann. {{value}}muss 0 oder eine positive Ganzzahl sein. Die Standardeinstellung für {{value}} ist 0, was unbegrenzt bedeutet.
+ `@REQUEST_MEMORY_GRANT_TIMEOUT_SEC`— Gibt die maximale Zeit in Sekunden an, für die eine Abfrage warten kann, bis eine Speicherzuweisung aus dem Abfrage-Workspace-Speicher verfügbar wird. {{value}}muss 0 oder eine positive Ganzzahl sein. Die Standardeinstellung für {{value}} 0 verwendet eine interne Berechnung, die auf den Abfragekosten basiert, um die maximale Zeit zu ermitteln.
+ `@MAX_DOP`— Gibt den maximalen Grad an Parallelität (`MAXDOP`) für die parallele Abfrageausführung an. Der zulässige Bereich für {{value}} liegt zwischen 0 und 64. Die Standardeinstellung für {{value}} 0 verwendet die globale Einstellung.
+ `@GROUP_MAX_REQUESTS`= Gibt die maximale Anzahl gleichzeitiger Anfragen an, die in der Workload-Gruppe ausgeführt werden dürfen. {{value}}muss 0 oder eine positive Ganzzahl sein. Die Standardeinstellung für {{value}} ist 0 und erlaubt eine unbegrenzte Anzahl von Anfragen.
+ `@GROUP_MAX_TEMPDB_DATA_MB`— Gibt die maximale Menge an Tempdb-Datenspeicher in Megabyte an, die eine Workload-Gruppe verbrauchen kann. {{value}}muss 0, eine positive Zahl oder NULL sein. Bruchwerte sind zulässig. Wenn der Wert 0 ist, sind TempDB-Speicherzuweisungen durch Sitzungen in der Workload-Gruppe nicht zulässig. Wenn kein Wert festgelegt ist, begrenzt Resource Governor den TempDB-Speicherverbrauch durch die Workload-Gruppe nicht. Dieser Parameter ist auf SQL Server 2025 und höher verfügbar.
+ `@GROUP_MAX_TEMPDB_DATA_PERCENT`— Gibt die maximale Menge an Tempdb-Datenspeicher an, die eine Workload-Gruppe verbrauchen kann, als Prozentsatz der maximalen Tempdb-Größe. {{value}}muss im Bereich von 0 bis 100 oder NULL liegen. Bruchwerte sind zulässig. Wenn der Wert 0 ist, sind TempDB-Speicherzuweisungen durch Sitzungen in der Workload-Gruppe nicht zulässig. Wenn kein Wert festgelegt ist, begrenzt Resource Governor den TempDB-Speicherverbrauch durch die Workload-Gruppe nicht. Wann `GROUP_MAX_TEMPDB_DATA_MB` ein Wert gesetzt ist oder wenn die maximale TempDB-Größe nicht definiert ist, `GROUP_MAX_TEMPDB_DATA_PERCENT` hat dies keine Auswirkung. Dieser Parameter ist auf SQL Server 2025 und höher verfügbar.
+ `@pool_name`= Ordnet die Workload-Gruppe dem benutzerdefinierten Ressourcenpool zu{{pool\_name}}, der vom oder mit dem `default` Ressourcenpool identifiziert wurde. Wenn {{pool\_name}} nicht angegeben, wird die Workload-Gruppe dem integrierten `default` Pool zugeordnet.

**Beispiele**

```
--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
```

Beispiel für die Erstellung einer Workload-Gruppe mit Tempdb-Governance (SQL Server 2025 und höher):

```
-- Create workload group with tempdb space limits
USE msdb;
EXEC dbo.rds_create_workload_group
    @group_name = 'etl_workload',
    @IMPORTANCE = 'MEDIUM',
    @REQUEST_MAX_MEMORY_GRANT_PERCENT = 25,
    @MAX_DOP = 4,
    @GROUP_MAX_TEMPDB_DATA_MB = 2048,
    @GROUP_MAX_TEMPDB_DATA_PERCENT = 30,
    @pool_name = 'etl_pool';

-- Apply changes
EXEC msdb.dbo.rds_alter_resource_governor_configuration;

-- Validate configuration
SELECT name, group_max_tempdb_data_mb, group_max_tempdb_data_percent
FROM sys.resource_governor_workload_groups
WHERE name = 'etl_workload';
```

### Workload-Gruppe ändern
<a name="ResourceGovernor.AlterWorkloadGroup"></a>

**Usage**

```
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,
    @GROUP_MAX_TEMPDB_DATA_MB = value,
    @GROUP_MAX_TEMPDB_DATA_PERCENT = value,
    @pool_name = value
```

Die folgenden Parameter sind erforderlich:
+ `@group_name`— Ist der Name der Standardarbeitsgruppe oder einer vorhandenen benutzerdefinierten Workload-Gruppe.

**Anmerkung**  
Nur das Ändern von `REQUEST_MAX_MEMORY_GRANT_PERCENT` Parametern in der Standard-Workload-Gruppe wird unterstützt. Für die Standard-Workload-Gruppe `REQUEST_MAX_MEMORY_GRANT_PERCENT` muss der Wert zwischen 1 und 70 liegen. In der Standard-Workload-Gruppe können keine anderen Parameter geändert werden. Alle Parameter können in der benutzerdefinierten Workload-Gruppe geändert werden.

Die folgenden Parameter sind optional:
+ `@IMPORTANCE`— Gibt die relative Wichtigkeit einer Anfrage in der Workload-Gruppe an. Der Standardwert ist MEDIUM.
+ `@REQUEST_MAX_MEMORY_GRANT_PERCENT`— Gibt die maximale Menge an Abfrage-Workspace-Speicher an, die eine einzelne Anforderung aus dem Pool beanspruchen kann. {{value}}ist ein Prozentsatz der Größe des Ressourcenpools, definiert durch`MAX_MEMORY_PERCENT`. Der Standardwert ist 25. Bei Amazon RDS `REQUEST_MAX_MEMORY_GRANT_PERCENT` muss er zwischen 1 und 70 liegen.
+ `@REQUEST_MAX_CPU_TIME_SEC`— Gibt die maximale CPU-Zeit in Sekunden an, die eine Batch-Anfrage verwenden kann. {{value}}muss 0 oder eine positive Ganzzahl sein. Die Standardeinstellung für {{value}} ist 0, was unbegrenzt bedeutet.
+ `@REQUEST_MEMORY_GRANT_TIMEOUT_SEC`— Gibt die maximale Zeit in Sekunden an, für die eine Abfrage warten kann, bis eine Speicherzuweisung aus dem Abfrage-Workspace-Speicher verfügbar wird. {{value}}muss 0 oder eine positive Ganzzahl sein. Die Standardeinstellung für {{value}} 0 verwendet eine interne Berechnung, die auf den Abfragekosten basiert, um die maximale Zeit zu ermitteln.
+ `@MAX_DOP`— Gibt den maximalen Grad an Parallelität (MAXDOP) für die parallele Abfrageausführung an. Der zulässige Bereich für {{value}} liegt zwischen 0 und 64. Die Standardeinstellung für {{value}} 0 verwendet die globale Einstellung.
+ `@GROUP_MAX_REQUESTS`— Gibt die maximale Anzahl gleichzeitiger Anfragen an, die in der Workload-Gruppe ausgeführt werden dürfen. {{value}}muss 0 oder eine positive Ganzzahl sein. Die Standardeinstellung für {{value}} ist 0 und erlaubt eine unbegrenzte Anzahl von Anfragen.
+ `@GROUP_MAX_TEMPDB_DATA_MB`— Gibt die maximale Menge an Tempdb-Datenspeicher in Megabyte an, die eine Workload-Gruppe verbrauchen kann. {{value}}muss 0, eine positive Zahl oder NULL sein. Bruchwerte sind zulässig. Dieser Parameter ist auf SQL Server 2025 und höher verfügbar.
+ `@GROUP_MAX_TEMPDB_DATA_PERCENT`— Gibt die maximale Menge an Tempdb-Datenspeicher an, die eine Workload-Gruppe verbrauchen kann, als Prozentsatz der maximalen Tempdb-Größe. {{value}}muss im Bereich von 0 bis 100 oder NULL liegen. Bruchwerte sind zulässig. Wann gesetzt `GROUP_MAX_TEMPDB_DATA_MB` ist oder wenn die maximale TempDB-Größe nicht definiert ist, `GROUP_MAX_TEMPDB_DATA_PERCENT` hat keine Auswirkung. Dieser Parameter ist auf SQL Server 2025 und höher verfügbar.
+ `@pool_name`— Ordnet die Workload-Gruppe dem benutzerdefinierten Ressourcenpool zu, der durch identifiziert wird{{pool\_name}}.

**Beispiele**

Beispiel für die Änderung der Standard-Workload-Gruppe REQUEST\_MAX\_MEMORY\_GRANT\_PERCENT:

```
--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';
```

Beispiel für die Änderung einer nicht standardmäßigen Workload-Gruppe:

```
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;
```

Beispiel für das Verschieben einer Non-Default Workload-Gruppe in einen anderen Ressourcenpool:

```
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
```

Beispiel zum Ändern einer Workload-Gruppe mit Tempdb-Governance (SQL Server 2025 und höher):

```
-- Add tempdb limits to an existing workload group
USE msdb;
EXEC msdb.dbo.rds_alter_workload_group
    @group_name = 'etl_workload',
    @GROUP_MAX_TEMPDB_DATA_MB = 4096,
    @GROUP_MAX_TEMPDB_DATA_PERCENT = 50;

-- Apply changes
EXEC msdb.dbo.rds_alter_resource_governor_configuration;

-- Validate configuration
SELECT name, group_max_tempdb_data_mb, group_max_tempdb_data_percent
FROM sys.resource_governor_workload_groups
WHERE name = 'etl_workload';
```

### Workload-Gruppe löschen
<a name="ResourceGovernor.DropWorkloadGroup"></a>

**Usage**

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

Die folgenden Parameter sind erforderlich:
+ `@group_name`— Ist der Name einer vorhandenen benutzerdefinierten Workload-Gruppe.

**Beispiele**

```
--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
```

## Erstellen und registrieren Sie die Klassifikatorfunktion
<a name="ResourceGovernor.ClassifierFunction"></a>

Dieses Verfahren erstellt eine Klassifizierungsfunktion für die Ressourcenkontrolle in der Master-Datenbank, die Verbindungen auf der Grundlage bestimmter Kriterien (Benutzername, Datenbank, Host oder Anwendungsname) an benutzerdefinierte Workload-Gruppen weiterleitet. Wenn die Ressourcenkontrolle aktiviert ist und in der Konfiguration der Ressourcenkontrolle eine Klassifiziererfunktion angegeben ist, bestimmt die Funktionsausgabe die Workload-Gruppe, die für neue Sitzungen verwendet wird. In Ermangelung einer Klassifiziererfunktion werden alle Sitzungen der `default` Gruppe zugeordnet.

**Features:**
+ Unterstützt bis zu zwei Workload-Gruppen mit ihren jeweiligen Routing-Bedingungen.
+ Kombiniert Kriterien mit `AND` Bedingungen innerhalb jeder Gruppe.
+ Erfordert mindestens ein Routingkriterium pro Workload-Gruppe.
+ Der Funktionsname muss mit beginnen`rg_classifier_`.
+ Standardgruppenzuweisung, wenn keine Bedingungen erfüllt sind.

Die Klassifikatorfunktion weist die folgenden Merkmale und Verhaltensweisen auf:
+ Die Funktion ist im Serverbereich (in der Master-Datenbank) definiert.
+ Die Funktion ist mit einer Schemabindung definiert.
+ Die Funktion wird für jede neue Sitzung ausgewertet, auch wenn das Verbindungspooling aktiviert ist.
+ Die Funktion gibt den Workload-Gruppenkontext für die Sitzung zurück. Die Sitzung wird der Workload-Gruppe zugewiesen, die vom Klassifikator für die gesamte Lebensdauer der Sitzung zurückgegeben wird.
+ Wenn die Funktion NULL, default oder den Namen einer nicht existierenden Workload-Gruppe zurückgibt, wird der Sitzung der Standard-Workload-Gruppenkontext zugewiesen. Der Sitzung wird auch der Standardkontext zugewiesen, wenn die Funktion aus irgendeinem Grund fehlschlägt.
+ Sie können mehrere Klassifikatorfunktionen erstellen. In SQL Server kann jedoch jeweils nur eine Klassifikatorfunktion registriert werden.
+ Die Klassifikatorfunktion kann nur gelöscht werden, wenn ihr Klassifiziererstatus mithilfe der Prozedur zum Aufheben der Registrierung (`EXEC dbo.msdb.rds_alter_resource_governor_configuration @deregister_function = 1;`) entfernt wird, die den Funktionsnamen auf NULL setzt, oder eine andere Klassifikatorfunktion wird mit () registriert `EXEC dbo.msdb.rds_alter_resource_governor_configuration @classifier_function = <function_name>;`
+ In Ermangelung einer Klassifiziererfunktion werden alle Sitzungen der Standardgruppe zugeordnet.
+ Sie können eine Klassifikatorfunktion nicht ändern, solange in der Konfiguration der Ressourcenkontrolle auf sie verwiesen wird. Sie können die Konfiguration jedoch ändern, um eine andere Klassifikatorfunktion zu verwenden. Wenn Sie Änderungen am Klassifikator vornehmen möchten, sollten Sie erwägen, ein Paar von Klassifikatorfunktionen zu erstellen. Sie könnten beispielsweise und erstellen`rg_classifier_a`. `rg_classifier_b`

**Usage**

```
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
```

Die folgenden Parameter sind erforderlich:
+ `@function_name`- Name der Klassifikatorfunktion. Muss beginnen mit `rg_classifier_`
+ `@workload_group1`- Name der ersten Workload-Gruppe

Die folgenden Parameter sind optional:

(Mindestens eines dieser Kriterien muss für Gruppe 1 angegeben werden)
+ `@user_name1`- Anmeldename für Gruppe 1
+ `@db_name1`- Datenbankname für Gruppe 1
+ `@host_name1`- Hostname für Gruppe 1
+ `@app_name1`- Anwendungsname für Gruppe 1

(Wenn Gruppe 2 angegeben ist, muss mindestens ein Kriterium angegeben werden)
+ `@workload_group2`- Name der zweiten Workload-Gruppe
+ `@user_name2`- Anmeldename für Gruppe 2
+ `@db_name2`- Datenbankname für Gruppe 2
+ `@host_name2`- Hostname für Gruppe 2
+ `@app_name2`- Anwendungsname für Gruppe 2

**Anmerkung**  
Systemkonten, Datenbanken, Anwendungen und der Host sind eingeschränkt.

**Beispiele**

Einfaches Beispiel mit einer Workload-Gruppe:

```
/*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;
```

## Klassifikatorfunktion löschen
<a name="ResourceGovernor.DropClassifier"></a>

**Usage**

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

Der folgende Parameter ist erforderlich:
+ `@function_name`- Ist der Name einer vorhandenen benutzerdefinierten Klassifikatorfunktion

**Beispiel**

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

## De-register Klassifikator-Funktion
<a name="ResourceGovernor.DeregisterClassifier"></a>

Gehen Sie wie folgt vor, um die Registrierung der Klassifikatorfunktion aufzuheben. Nach der Aufhebung der Registrierung der Funktion werden neue Sitzungen automatisch der Standard-Workload-Gruppe zugewiesen.

**Usage**

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

Für die Abmeldung ist der folgende Parameter erforderlich:
+ `@deregister_function`muss 1 sein

**Beispiel**

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

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

## Statistik zurücksetzen
<a name="ResourceGovernor.ResetStats"></a>

Die Statistiken zur Ressourcenkontrolle sind seit dem letzten Serverneustart kumulativ. Wenn Sie ab einem bestimmten Zeitpunkt Statistiken erheben müssen, können Sie die Statistiken mithilfe der folgenden gespeicherten Amazon RDS-Prozedur zurücksetzen.

**Usage**

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

Zum Zurücksetzen von Statistiken ist der folgende Parameter erforderlich:
+ `@reset_statistics`muss 1 sein

## Änderungen an der Konfiguration des Resource Governors
<a name="ResourceGovernor.ConfigChanges"></a>

Wenn die Ressourcenkontrolle nicht aktiviert ist, wird `rds_alter_resource_governor_configuration` die Ressourcenkontrolle aktiviert. Die Aktivierung des Resource Governor hat die folgenden Ergebnisse:
+ Die Klassifizierungsfunktion, falls vorhanden, wird für neue Sitzungen ausgeführt und sie Workload-Gruppen zugewiesen.
+ Die in der Konfiguration der Ressourcenkontrolle angegebenen Ressourcengrenzwerte werden eingehalten und durchgesetzt.
+ Die in der Konfiguration der Ressourcenkontrolle angegebenen Ressourcenbeschränkungen werden eingehalten und durchgesetzt.
+ Anforderungen, die vor der Aktivierung der Ressourcenkontrolle bestanden, können von allen Konfigurationsänderungen betroffen sein, die vorgenommen werden, wenn die Ressourcenkontrolle aktiviert ist.
+ Bestehende Anforderungen, bevor die Ressourcenkontrolle aktiviert wurde, können von allen Konfigurationsänderungen betroffen sein, die vorgenommen werden, wenn die Ressourcenkontrolle aktiviert ist.
+ Auf RDS für SQL Server `EXEC msdb.dbo.rds_alter_resource_governor_configuration` muss es ausgeführt werden, damit alle Konfigurationsänderungen der Ressourcenkontrolle wirksam werden. 

**Usage**

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

## Binden Sie TempDB an einen Ressourcenpool
<a name="ResourceGovernor.BindTempDB"></a>

`rds_bind_tempdb_metadata_to_resource_pool`In Amazon RDS SQL Server Version 2019 und höher können Sie speicheroptimierte TempDB-Metadaten an einen bestimmten Ressourcenpool binden.

**Anmerkung**  
Memory-optimized Die Tempdb-Metadatenfunktion muss aktiviert sein, bevor Tempdb-Metadaten an den Ressourcenpool gebunden werden können. Um diese Funktion in Amazon RDS zu aktivieren, ist es ein statischer Parameter. `tempdb metadata memory-optimized`

Aktivieren Sie den statischen Parameter auf Amazon RDS und führen Sie einen Neustart ohne Failover durch, damit der Parameter wirksam wird:

```
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"
```

**Usage**

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

Der folgende Parameter ist erforderlich:
+ `@pool_name`— Ist der Name eines vorhandenen benutzerdefinierten Ressourcenpools.

**Anmerkung**  
Diese Änderung erfordert auch einen Neustart des SQL-Dienstes ohne Failover, um wirksam zu werden, auch wenn die Memory-optimized TempDB-Metadatenfunktion bereits aktiviert ist.

## Trennen Sie TempDB von einem Ressourcenpool
<a name="ResourceGovernor.UnbindTempDB"></a>

Entbindet speicheroptimierte TempDB-Metadaten aus einem Ressourcenpool.

**Anmerkung**  
Diese Änderung erfordert außerdem einen Neustart des SQL-Dienstes, ohne dass ein Failover wirksam wird

**Usage**

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

## Ressourcenverwaltung für die Bereinigung
<a name="ResourceGovernor.Cleanup"></a>

Mit diesem Verfahren werden alle zugehörigen Objekte bereinigt, nachdem Sie die Option Resource Governor aus der Optionsgruppe entfernt haben. Dadurch wird die Ressourcenkontrolle deaktiviert, die Standard-Workload-Gruppe auf die Standardeinstellungen zurückgesetzt und benutzerdefinierte Workload-Gruppen, Ressourcenpools und Klassifizierungsfunktionen entfernt.

**Schlüssel-Features**
+ Setzt die Standard-Workload-Gruppe auf die Standardeinstellungen zurück
+ Deaktiviert den Resource Governor
+ Entfernt benutzerdefinierte Workload-Gruppen
+ Entfernt benutzerdefinierte Ressourcenpools
+ Löscht Klassifikatorfunktionen
+ Entfernt die Tempdb-Ressourcenpool-Bindung, falls diese Option aktiviert ist

**Wichtig**  
Bei dieser Bereinigung kann es zu einem Fehler kommen, wenn in der Workload-Gruppe aktive Sitzungen vorhanden sind. Warten Sie entweder, bis die aktiven Sitzungen beendet sind, oder beenden Sie die aktiven Sitzungen gemäß Ihren Geschäftsanforderungen. Es wird empfohlen, dies während des Wartungsfensters auszuführen.   
Bei dieser Bereinigung kann es zu einem Fehler kommen, wenn ein Ressourcenpool an tempdb gebunden war und noch kein Neustart ohne Failover stattgefunden hat. Wenn Sie zuvor einen Ressourcenpool an Tempdb gebunden oder die Bindung eines Ressourcenpools an Tempdb aufgehoben haben, führen Sie einen Neustart ohne Failover durch, damit die Änderung wirksam wird. Es wird empfohlen, dies während des Wartungsfensters auszuführen.

**Usage**

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