Freigeben über


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 oder CREATE | ALTER | DROP RESOURCE POOL oder CREATE | 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 und internal 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);