ALTER RESOURCE GOVERNOR (Transact-SQL)
Gilt für:SQL ServerAzure SQL Managed Instance
Diese Anweisung führt die folgenden Aktionen der Ressourcenverwaltung aus:
- Aktivieren oder Deaktivieren der Ressourcensteuerung.
- Wenden Sie die Konfigurationsänderungen an, die angegeben werden, wenn die anweisungen
CREATE | ALTER | DROP WORKLOAD GROUP
oderCREATE | ALTER | DROP RESOURCE POOL
oderCREATE | ALTER | DROP EXTERNAL RESOURCE POOL
ausgeführt werden. - Konfigurieren sie die Klassifizierung für eingehende Sitzungen.
- Zurücksetzen der Statistik für Arbeitsauslastungsgruppen und Ressourcenpools.
- Legen Sie die maximalen E/A-Vorgänge in der Warteschlange pro Datenträgervolume fest.
Transact-SQL-Syntaxkonventionen
Syntax
ALTER RESOURCE GOVERNOR
{ RECONFIGURE
[ WITH
( [ CLASSIFIER_FUNCTION = { schema_name.function_name | NULL } ]
[ [ , ] MAX_OUTSTANDING_IO_PER_VOLUME = value ]
)
]
| DISABLE
| RESET STATISTICS
}
[ ; ]
Argumente
RECONFIGURE
Wenn die Ressourcenkontrolle nicht aktiviert ist, aktiviert RECONFIGURE
ressourcenhauptend. Das Aktivieren der Ressourcenkontrolle hat die folgenden Ergebnisse:
- Die Klassifiziererfunktion wird, falls vorhanden, für neue Sitzungen ausgeführt und diesen Workloadgruppen zugewiesen.
- Die Ressourcenreservierungen und -beschränkungen, die in der Konfiguration der Ressourcenkontrolle angegeben sind, werden berücksichtigt und erzwungen.
- Anforderungen, die vorhanden sind, bevor die Ressourcensteuerung aktiviert wird, können von Konfigurationsänderungen betroffen sein, die beim Aktivieren der Ressourcensteuerung vorgenommen wurden.
Wenn die Ressourcensteuerung aktiviert ist, wendet RECONFIGURE
alle Konfigurationsänderungen an, die vom CREATE | ALTER | DROP WORKLOAD GROUP
oder CREATE | ALTER | DROP RESOURCE POOL
oder CREATE | ALTER | DROP EXTERNAL RESOURCE POOL
Anweisungen nach der vorherigen Verwendung von RECONFIGURE
oder nach dem letzten Neustart des Datenbankmoduls vorgenommen wurden.
Wichtig
ALTER RESOURCE GOVERNOR RECONFIGURE
müssen ausgeführt werden, damit Konfigurationsänderungen der Ressourcenverwaltung wirksam werden.
CLASSIFIER_FUNCTION = { Schemaname.Funktionsname | NULL }
Registriert die Klassifizierungsfunktion, die durch schema_name.function_name angegeben wird. Diese Funktion klassifiziert jede neue Sitzung und weist die Sitzung einer Workloadgruppe zu. Wenn NULL
verwendet wird, werden der default
Workloadgruppe automatisch neue Sitzungen zugewiesen.
MAX_OUTSTANDING_IO_PER_VOLUME = value
Gilt für: SQL Server 2014 (12.x) und höher.
Legt die maximale Anzahl an E/A-Vorgängen in der Warteschlange pro Datenträgervolume fest. Bei diesen E/A-Vorgängen kann es sich um Lese- oder Schreibvorgänge beliebiger Größe handeln. Der Maximalwert für MAX_OUTSTANDING_IO_PER_VOLUME
beträgt 100. Der Wert ist kein Prozentsatz. Diese Einstellung ist so konzipiert, dass sie die E/A-Ressourcenkontrolle auf die E/A-Eigenschaften eines Datenträgervolumes abstimmt. Es stellt eine Sicherheitsüberprüfung auf Systemebene bereit, mit der das Datenbankmodul die für Ressourcenpools angegebene MIN_IOPS_PER_VOLUME
Einstellung erfüllen kann, auch wenn andere Pools die einstellung MAX_IOPS_PER_VOLUME
auf "unbegrenzt" festgelegt haben. Weitere Informationen finden Sie unter CREATE RESOURCE POOL.
DISABLE
Deaktiviert die Ressourcenkontrolle. Das Deaktivieren der Ressourcenkontrolle hat die folgenden Ergebnisse:
- Die Klassifiziererfunktion wird nicht ausgeführt.
- Alle neuen Benutzersitzungen werden automatisch in die
default
Workloadgruppe eingeteilt. - Systemsitzungen werden in die
internal
Workloadgruppe eingeteilt. - Alle Einstellungen für bestehende Arbeitsauslastungsgruppen und Ressourcenpools werden auf die Standardwerte zurückgesetzt. Es werden keine Ereignisse ausgelöst, wenn Grenzwerte erreicht werden.
- Normale Systemüberwachung ist nicht betroffen.
- Konfigurationsänderungen der Ressourcensteuerung können vorgenommen werden, die Änderungen werden jedoch erst wirksam, wenn die Ressourcensteuerung aktiviert ist.
- Nach dem Neustart des Datenbankmoduls lädt die Ressourcenverwaltung ihre Konfiguration nicht, sondern verwendet stattdessen nur die
default
undinternal
Workloadgruppen und Ressourcenpools.
RESET STATISTICS
Setzt Statistiken zu allen Workloadgruppen und Ressourcenpools zurück, die in sys.dm_resource_governor_workload_groups und sys.dm_resource_governor_resource_poolsverfügbar gemacht werden.
Bemerkungen
ALTER RESOURCE GOVERNOR
kann nicht innerhalb einer Benutzertransaktion verwendet werden.
Der parameter RECONFIGURE
ist Teil der Ressourcenhauptwertungssyntax. Es sollte nicht mit RECONFIGUREverwechselt werden, die eine separate DDL-Anweisung ist.
Weitere Informationen finden Sie unter Resource Governor.
Berechtigungen
Erfordert die berechtigung CONTROL SERVER
.
Beispiele
Aktivieren des Ressourcengouverneurs
Wenn SQL Server installiert ist, ist die Ressourcenkontrolle deaktiviert. Im folgenden Beispiel wird die Ressourcenkontrolle aktiviert. Nachdem die Anweisung ausgeführt wurde, ist die Ressourcensteuerung aktiviert und verwendet integrierte Workloadgruppen und Ressourcenpools.
ALTER RESOURCE GOVERNOR RECONFIGURE;
Zuweisen neuer Sitzungen zur Standardgruppe
Im folgenden Beispiel werden alle neuen Sitzungen der default
Workloadgruppe zugewiesen, indem alle vorhandenen Klassifiziererfunktionen aus der Ressourcenverwaltungskonfiguration entfernt werden. Wenn keine Funktion als Klassifiziererfunktion festgelegt ist, werden alle neuen Benutzersitzungen der default
Workloadgruppe zugewiesen. Diese Änderung gilt nur für neue Sitzungen. Vorhandene Sitzungen sind nicht betroffen.
ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION = NULL);
ALTER RESOURCE GOVERNOR RECONFIGURE;
Erstellen und Registrieren einer Klassifiziererfunktion
Im folgenden Beispiel wird eine Klassifiziererfunktion namens dbo.rg_classifier
in der master
-Datenbank erstellt. Diese Funktion klassifiziert jede neue Sitzung anhand des Benutzer- oder Anwendungsnamens und weist die Sitzungsanforderungen und Abfragen einer bestimmten Arbeitsauslastungsgruppe zu. Sitzungen, die nicht mit dem angegebenen Benutzer- oder Anwendungsnamen übereinstimmen, werden der Standardarbeitsauslastungsgruppe zugewiesen. Anschließend wird die Klassifizierungsfunktion registriert, und die Konfigurationsänderung wird angewendet.
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;
Zurücksetzen von Ressourcenverwaltungsstatistiken
Im folgenden Beispiel wird die gesamte Statistik für Arbeitsauslastungsgruppen und Ressourcenpools zurückgesetzt.
ALTER RESOURCE GOVERNOR RESET STATISTICS;
Konfigurieren der einstellung MAX_OUTSTANDING_IO_PER_VOLUME
Im folgenden Beispiel wird die MAX_OUTSTANDING_IO_PER_VOLUME
Einstellung auf 20 IOs festgelegt.
ALTER RESOURCE GOVERNOR WITH (MAX_OUTSTANDING_IO_PER_VOLUME = 20);
Verwandte Inhalte
- Ressourcengouverneur
- Konfigurationsbeispiele für Ressourcengouverneur und bewährte Methoden
- ERSTELLEN EINES RESSOURCENPOOLs
- ALTER RESOURCE POOL
- DROP-RESSOURCENPOOL-
- ERSTELLEN EINES EXTERNEN RESSOURCENPOOLs
- EXTERNER RESSOURCENPOOL
- ALTER EXTERNAL RESOURCE POOL
- ERSTELLEN EINER WORKLOADGRUPPE
- ALTER WORKLOAD GROUP
- DROP WORKLOAD GROUP
- sys.dm_resource_governor_workload_groups
- sys.dm_resource_governor_resource_pools