ALTER RESOURCE GOVERNOR (Transact-SQL)

Gilt für: SQL Server Azure SQL Managed Instance

Diese Anweisung wird für die folgenden Ressourcenkontrollaktionen in SQL Server verwendet:

  • Anwenden der Konfigurationsänderungen, die beim Ausgeben der Anweisungen CREATE|ALTER|DROP WORKLOAD GROUP oder CREATE|ALTER|DROP RESOURCE POOL oder CREATE|ALTER|DROP EXTERNAL RESOURCE POOL angegeben wurden.

  • Aktivieren bzw. Deaktivieren der Ressourcenkontrolle.

  • Konfigurieren der Klassifizierung für eingehende Anforderungen.

  • Zurücksetzen der Statistik für Arbeitsauslastungsgruppen und Ressourcenpools.

  • Festlegen der maximalen E/A-Vorgänge pro Datenträgervolume.

Transact-SQL-Syntaxkonventionen

Syntax

ALTER RESOURCE GOVERNOR   
      { DISABLE | RECONFIGURE }  
    | WITH ( CLASSIFIER_FUNCTION = { schema_name.function_name | NULL } )  
    | RESET STATISTICS  
    | WITH ( MAX_OUTSTANDING_IO_PER_VOLUME = value )   
[ ; ]  

Argumente

DISABLE
Deaktiviert die Ressourcenkontrolle. Wenn Sie Resource Governor deaktivieren, geschieht Folgendes:

  • Die Klassifizierungsfunktion wird nicht ausgeführt.

  • Alle neuen Verbindungen werden automatisch der Standardgruppe zugewiesen.

  • Vom System initiierte Anforderungen werden der internen Arbeitsauslastungsgruppe zugewiesen.

  • Alle Einstellungen für bestehende Arbeitsauslastungsgruppen und Ressourcenpools werden auf die Standardwerte zurückgesetzt. In diesem Fall werden keine Ereignisse ausgelöst, wenn Grenzwerte erreicht werden.

  • Die reguläre Systemüberwachung bleibt unbeeinflusst.

  • Sie können die Konfiguration ändern, die Änderungen treten jedoch erst in Kraft, wenn Resource Governor wieder aktiviert wird.

  • Beim Neustart von SQL Server lädt die Ressourcenkontrolle nicht ihre Konfiguration, sondern enthält lediglich die Standardgruppen und -pools sowie die internen Gruppen und Pools.

RECONFIGURE
Wenn die Ressourcenkontrolle nicht aktiviert ist, wird sie durch RECONFIGURE aktiviert. Wenn Sie Resource Governor deaktivieren, geschieht Folgendes:

  • Die Klassifizierungsfunktion wird für neue Verbindungen ausgeführt, damit deren Arbeitsauslastung Arbeitsauslastungsgruppen zugeordnet werden kann.

  • Die in der Konfiguration der Ressourcenkontrolle angegebenen Ressourcengrenzwerte werden überprüft und durchgesetzt.

  • Alle Konfigurationsänderungen, die bei deaktivierte Resource Governor vorgenommen wurden, wirken sich auf Anforderungen aus, die bereits bestanden, bevor Resource Governor aktiviert wurde.

Wenn RECONFIGURE beim Ausführen von Resource Governor verwendet wird, werden alle Konfigurationsanforderungen angewendet, die beim Ausführen der Anweisungen CREATE|ALTER|DROP WORKLOAD GROUP oder CREATE|ALTER|DROP RESOURCE POOL oder CREATE|ALTER|DROP EXTERNAL RESOURCE POOL angefordert wurden.

Wichtig

ALTER RESOURCE GOVERNOR RECONFIGURE muss ausgegeben werden, damit Konfigurationsänderungen 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 Sitzungsanforderungen und Abfragen einer Arbeitsauslastungsgruppe zu. Bei Verwendung von NULL werden neue Sitzungen automatisch der Standardarbeitsauslastungsgruppe zugewiesen.

RESET STATISTICS
Setzt die Statistik für alle Arbeitsauslastungsgruppen und Ressourcenpools zurück. Weitere Informationen finden Sie unter sys.dm_resource_governor_workload_groups (Transact-SQL) und sys.dm_resource_governor_resource_pools (Transact-SQL).

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 ist 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. Diese Einstellung bietet eine Sicherheitsprüfung auf Systemebene, die es SQL Server ermöglicht, den minimalen IOPS-Wert für Ressourcenpools einzuhalten, auch wenn die MAX_IOPS_PER_VOLUME-Einstellung anderer Pools auf einen unbegrenzten Wert festgelegt ist. Weitere Informationen zu MAX_IOPS_PER_VOLUME finden Sie unter CREATE RESOURCE POOL.

Bemerkungen

ALTER RESOURCE GOVERNOR DISABLE, ALTER RESOURCE GOVERNOR RECONFIGURE und ALTER RESOURCE GOVERNOR RESET STATISTICS können nicht in einer Benutzertransaktion verwendet werden.

Der RECONFIGURE-Parameter ist Teil der Syntax von Resource Governor und darf nicht mit RECONFIGURE verwechselt werden, die eine eigene DDL-Anweisung ist.

Sie sollten mit den Status der Ressourcenkontrolle vertraut sein, bevor Sie DDL-Anweisungen ausführen. Weitere Informationen finden Sie unter Resource Governor.

Berechtigungen

Erfordert die CONTROL SERVER-Berechtigung.

Beispiele

A. Starten der Ressourcenkontrolle

Nach der Installation von SQL Server ist die Ressourcenkontrolle zunächst deaktiviert. Im folgenden Beispiel wird die Ressourcenkontrolle gestartet. Sobald die Anweisung ausgeführt wurde, ist die Ressourcenkontrolle gestartet und kann die vordefinierten Arbeitsauslastungsgruppen und Ressourcenpools verwenden.

ALTER RESOURCE GOVERNOR RECONFIGURE;  

B. Zuweisen neuer Sitzungen zur Standardgruppe

Im folgenden Beispiel werden alle neuen Sitzungen der Standardarbeitsauslastungsgruppe zugewiesen, indem alle vorhandenen Klassifizierungsfunktionen aus der Konfiguration der Ressourcenkontrolle entfernt werden. Wenn keine Funktion als Klassifizierungsfunktion festgelegt ist, werden alle neuen Sitzungen der Standardarbeitsauslastungsgruppe zugewiesen. Diese Änderung gilt nur für neue Sitzungen. Vorhandene Sitzungen werden nicht beeinflusst.

ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION = NULL);  
GO  
ALTER RESOURCE GOVERNOR RECONFIGURE;  

C. Erstellen und Registrieren einer Klassifizierungsfunktion

Im folgenden Beispiel wird die Klassifizierungsfunktion dbo.rgclassifier_v1 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.

-- Store the classifier function in the master database.  
USE master;  
GO  
SET ANSI_NULLS ON;  
GO  
SET QUOTED_IDENTIFIER ON;  
GO  
CREATE FUNCTION dbo.rgclassifier_v1() RETURNS sysname   
WITH SCHEMABINDING  
AS  
BEGIN  
-- Declare the variable to hold the value returned in sysname.  
    DECLARE @grp_name AS sysname  
-- If the user login is 'sa', map the connection to the groupAdmin  
-- workload group.   
    IF (SUSER_NAME() = 'sa')  
        SET @grp_name = 'groupAdmin'  
-- Use application information to map the connection to the groupAdhoc  
-- workload group.  
    ELSE IF (APP_NAME() LIKE '%MANAGEMENT STUDIO%')  
        OR (APP_NAME() LIKE '%QUERY ANALYZER%')  
            SET @grp_name = 'groupAdhoc'  
-- If the application is for reporting, map the connection to  
-- the groupReports workload group.  
    ELSE IF (APP_NAME() LIKE '%REPORT SERVER%')  
        SET @grp_name = 'groupReports'  
-- If the connection does not map to any of the previous groups,  
-- put the connection into the default workload group.  
    ELSE  
        SET @grp_name = 'default'  
    RETURN @grp_name  
END;  
GO  
-- Register the classifier user-defined function and update the   
-- the in-memory configuration.  
ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION=dbo.rgclassifier_v1);  
GO  
ALTER RESOURCE GOVERNOR RECONFIGURE;  
GO  

D: Zurücksetzen von Statistiken

Im folgenden Beispiel wird die gesamte Statistik für Arbeitsauslastungsgruppen und Ressourcenpools zurückgesetzt.

ALTER RESOURCE GOVERNOR RESET STATISTICS;  

E. Festlegen der MAX_OUTSTANDING_IO_PER_VOLUME-Option

Im folgenden Beispiel wird die MAX_OUTSTANDING_IO_PER_VOLUME-Option auf 20 festgelegt.

ALTER RESOURCE GOVERNOR  
WITH (MAX_OUTSTANDING_IO_PER_VOLUME = 20);   

Weitere Informationen

CREATE RESOURCE POOL (Transact-SQL)
ALTER RESOURCE POOL (Transact-SQL)
DROP RESOURCE POOL (Transact-SQL)
CREATE EXTERNAL RESOURCE POOL (Transact-SQL)
DROP EXTERNAL RESOURCE POOL (Transact-SQL)
ALTER EXTERNAL RESOURCE POOL (Transact-SQL)
CREATE WORKLOAD GROUP (Transact-SQL)
ALTER WORKLOAD GROUP (Transact-SQL)
DROP WORKLOAD GROUP (Transact-SQL)
Ressourcenkontrolle
sys.dm_resource_governor_workload_groups (Transact-SQL)
sys.dm_resource_governor_resource_pools (Transact-SQL)