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
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.
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.
Anleitungen zum Aufrufen der einzelnen gespeicherten Prozeduren finden Sie in den folgenden Themen:
Themen
Ressourcenpool verwalten
Ressourcenpool erstellen
Sobald die Ressourcenkontrolle für die Optionsgruppe aktiviert ist, können Sie benutzerdefinierte Ressourcenpools mithilfe von erstellenrds_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_nameist 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.valueist eine Ganzzahl mit einer Standardeinstellung von 100. Der zulässige Bereich fürvalueliegt 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.valueist eine Ganzzahl mit einer Standardeinstellung von 100. Der zulässige Bereich fürvalueliegt zwischen 1 und 100. -
@MAX_MEMORY_PERCENT— Gibt die maximale Menge an Abfrage-Workspace-Speicher an, die Anforderungen in diesem Ressourcenpool verwenden können.valueist eine Ganzzahl mit einer Standardeinstellung von 100. Der zulässige Bereich fürvalueliegt 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ürvalueliegt 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
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.valueist eine Ganzzahl mit einer Standardeinstellung von 100. Der zulässige Bereich fürvalueliegt 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.valueist eine Ganzzahl mit einer Standardeinstellung von 100. Der zulässige Bereich fürvalueliegt zwischen 1 und 100. -
@MAX_MEMORY_PERCENT— Gibt die maximale Menge an Abfrage-Workspace-Speicher an, die Anforderungen in diesem Ressourcenpool verwenden können.valueist eine Ganzzahl mit einer Standardeinstellung von 100. Der zulässige Bereich fürvalueliegt 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ürvalueliegt 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
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
Workload-Gruppen, die mit und erstellt rds_create_workload_group und verwaltet werdenrds_alter_workload_group, ermöglichen es Ihnen, Wichtigkeitsstufen, Speicherzuweisungen und andere Parameter für Gruppen von Abfragen festzulegen.
Workload-Gruppe erstellen
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 istMEDIUM. -
@REQUEST_MAX_MEMORY_GRANT_PERCENT— Gibt die maximale Menge an Abfrage-Workspace-Speicher an, die eine einzelne Anforderung aus dem Pool beanspruchen kann.valueist ein Prozentsatz der Größe des Ressourcenpools, definiert durchMAX_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.valuemuss 0 oder eine positive Ganzzahl sein. Die Standardeinstellung fürvalueist 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.valuemuss 0 oder eine positive Ganzzahl sein. Die Standardeinstellung fürvalue0 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ürvalueliegt zwischen 0 und 64. Die Standardeinstellung fürvalue0 verwendet die globale Einstellung. -
@GROUP_MAX_REQUESTS= Gibt die maximale Anzahl gleichzeitiger Anfragen an, die in der Workload-Gruppe ausgeführt werden dürfen.valuemuss 0 oder eine positive Ganzzahl sein. Die Standardeinstellung fürvalueist 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.valuemuss 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.valuemuss 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. WannGROUP_MAX_TEMPDB_DATA_MBein Wert gesetzt ist oder wenn die maximale TempDB-Größe nicht definiert ist,GROUP_MAX_TEMPDB_DATA_PERCENThat dies keine Auswirkung. Dieser Parameter ist auf SQL Server 2025 und höher verfügbar. -
@pool_name= Ordnet die Workload-Gruppe dem benutzerdefinierten Ressourcenpool zupool_name, der vom oder mit demdefaultRessourcenpool identifiziert wurde. Wennpool_namenicht angegeben, wird die Workload-Gruppe dem integriertendefaultPool 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
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.valueist ein Prozentsatz der Größe des Ressourcenpools, definiert durchMAX_MEMORY_PERCENT. Der Standardwert ist 25. Bei Amazon RDSREQUEST_MAX_MEMORY_GRANT_PERCENTmuss 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.valuemuss 0 oder eine positive Ganzzahl sein. Die Standardeinstellung fürvalueist 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.valuemuss 0 oder eine positive Ganzzahl sein. Die Standardeinstellung fürvalue0 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ürvalueliegt zwischen 0 und 64. Die Standardeinstellung fürvalue0 verwendet die globale Einstellung. -
@GROUP_MAX_REQUESTS— Gibt die maximale Anzahl gleichzeitiger Anfragen an, die in der Workload-Gruppe ausgeführt werden dürfen.valuemuss 0 oder eine positive Ganzzahl sein. Die Standardeinstellung fürvalueist 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.valuemuss 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.valuemuss im Bereich von 0 bis 100 oder NULL liegen. Bruchwerte sind zulässig. Wann gesetztGROUP_MAX_TEMPDB_DATA_MBist oder wenn die maximale TempDB-Größe nicht definiert ist,GROUP_MAX_TEMPDB_DATA_PERCENThat 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 wirdpool_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
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
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
ANDBedingungen 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 () registriertEXEC 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 mitrg_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
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
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_functionmuss 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
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_statisticsmuss 1 sein
Änderungen an der Konfiguration des Resource Governors
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_configurationmuss 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
rds_bind_tempdb_metadata_to_resource_poolIn 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
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
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