ALTER WORKLOAD GROUP (Transact-SQL)

Ändert eine vorhandene Konfiguration einer Ressourcenkontrollen-Arbeitsauslastungsgruppe und weist sie optional einem Ressourcenkontrollen-Ressourcenpool zu.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen.

Syntax

ALTER WORKLOAD GROUP { group_name | "default" }
[ WITH
    ([ 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 ] )
 ]
[ USING { pool_name | "default" } ]
[ ; ]

Argumente

  • group_name | "default"
    Der Name einer vorhandenen benutzerdefinierten Arbeitsauslastungsgruppe oder der standardmäßigen Ressourcenkontrollen-Arbeitsauslastungsgruppe.

    HinweisHinweis

    Die Ressourcenkontrolle erstellt den "Standard" und interne Gruppen, wenn SQL Server installiert ist.

    Die "default"-Option muss in Anführungszeichen ("") oder eckige Klammern ([]) eingeschlossen werden, wenn sie mit ALTER WORKLOAD GROUP verwendet wird, um einen Konflikt mit dem vom System reservierten Wort DEFAULT zu vermeiden. Weitere Informationen finden Sie unter Begrenzte Bezeichner (Datenbankmodul).

    HinweisHinweis

    Für vordefinierte Arbeitsauslastungsgruppen und Ressourcenpools werden ausschließlich kleingeschriebene Namen verwendet, z. B. "default". Dies sollte bei Servern beachtet werden, die bei der Sortierung auf Groß-/Kleinschreibung achten. Server, die bei der Sortierung nicht auf Groß- und Kleinschreibung achten, z. B. SQL_Latin1_General_CP1_CI_AS, behandeln "default" und "Default" gleich.

  • IMPORTANCE = { LOW | MEDIUM | HIGH }
    Gibt die relative Wichtigkeit einer Anforderung in der Arbeitsauslastungsgruppe an. Die Wichtigkeit kann einen der folgenden Werte aufweisen:

    • LOW

    • MEDIUM (Standard)

    • HIGH

    HinweisHinweis

    Intern wird jede Wichtigkeitseinstellung als Zahl gespeichert, die für Berechnungen verwendet wird.

    IMPORTANCE bezieht sich auf den lokalen Ressourcenpool; Arbeitsauslastungsgruppen mit verschiedener Wichtigkeit innerhalb desselben Ressourcenpools beeinflussen einander, haben jedoch keine Auswirkungen auf Arbeitsauslastungsgruppen in anderen Ressourcenpools.

  • REQUEST_MAX_MEMORY_GRANT_PERCENT = value
    Gibt die Höchstmenge an Arbeitsspeicher an, die eine einzelne Anforderung vom Pool in Anspruch nehmen kann. Dieser Prozentwert ist relativ zur Ressourcenpoolgröße, die von MAX_MEMORY_PERCENT festgelegt wird.

    HinweisHinweis

    Die angegebene Menge bezieht sich nur auf den für die Abfrageausführung gewährten Arbeitsspeicher.

    value muss 0 (null) oder eine positive ganze Zahl sein. Der zulässige Bereich für value liegt zwischen 0 und 100. Die Standardeinstellung für value ist 25.

    Beachten Sie Folgendes:

    • Das Festlegen von value auf 0 (Null) verhindert, dass Abfragen mit SORT- und HASH JOIN-Vorgängen in benutzerdefinierten Arbeitsauslastungsgruppen ausgeführt werden.

    • Es wird davon abgeraten, value auf einen höheren Wert als 70 festzulegen, da der Server möglicherweise nicht genug freien Arbeitsspeicher reservieren kann, wenn andere gleichzeitige Abfragen ausgeführt werden. Dadurch tritt möglicherweise der Timeoutfehler 8645 auf.

    HinweisHinweis

    Wenn die Speicheranforderungen der Abfrage den Grenzwert überschreiten, der von diesem Parameter angegeben wird, führt der Server folgende Vorgänge aus:

    Bei benutzerdefinierten Arbeitsauslastungsgruppen versucht der Server, den Grad der Parallelität für diese Abfrage zu reduzieren, bis die Arbeitsspeicheranforderung den Grenzwert unterschreitet oder bis der Grad der Parallelität dem Wert 1 entspricht. Wenn die Arbeitspeicheranforderung der Abfrage den Grenzwert immer noch überschreitet, tritt Fehler 8657 auf.

    Bei internen und Standard-Arbeitsauslastungsgruppen lässt der Server zu, dass der Abfrage der erforderliche Arbeitsspeicher zugewiesen wird.

    Beachten Sie, dass in beiden Fällen der Timeoutfehler 8645 auftreten kann, wenn der Server nicht über ausreichend physikalischen Arbeitsspeicher verfügt.

    Weitere Informationen zu Fehlermeldungen der Ressourcenkontrolle finden Sie unter Problembehandlung bei der Ressourcenkontrolle.

  • REQUEST_MAX_CPU_TIME_SEC = value
    Gibt die maximale Zeit in Sekunden an, die eine Abfrage auf das Freiwerden einer Ressource wartet, bevor die Abfrage fehlschlägt. value muss 0 (null) oder eine positive ganze Zahl sein. Die Standardeinstellung für value ist 0 (null); hierbei wird eine interne Berechnung basierend auf den Abfragekosten verwendet, um die maximale Zeit zu ermitteln.

    HinweisHinweis

    Die Ressourcenkontrolle verhindert nicht, dass eine Anforderung bei Erreichung des maximalen Zeitlimits fortgesetzt wird. Es wird jedoch ein Ereignis generiert. Weitere Informationen finden Sie unter CPU Threshold Exceeded (Ereignisklasse).

  • REQUEST_MEMORY_GRANT_TIMEOUT_SEC = value
    Gibt die maximale Zeit in Sekunden an, die eine Abfrage auf das Freiwerden einer Arbeitspeicherzuweisung (Arbeitsspeicherpuffer) wartet.

    HinweisHinweis

    Eine Abfrage schlägt nicht immer fehl, wenn das Arbeitsspeicherzuweisungs-Timeout erreicht wird. Eine Abfrage schlägt nur fehl, wenn zu viele Abfragen gleichzeitig ausgeführt werden. Andernfalls ruft die Abfrage möglicherweise nur die minimale Arbeitsspeicherzuweisung ab, was zu reduzierter Abfrageleistung führen kann.

    value muss eine positive ganze Zahl sein. Die Standardeinstellung für value ist 0 (null); hierbei wird eine interne Berechnung basierend auf den Abfragekosten verwendet, um die maximale Zeit zu ermitteln.

  • MAX_DOP = value
    Gibt den maximalen Grad der Parallelität (Degree of Parallelism, DOP) für parallele Anforderungen an. value muss 0 (null) oder eine positive ganze Zahl zwischen 1 und 255 sein. Wenn value 0 ist, wählt der Server den maximalen Grad an Parallelismus aus. Dies ist die Standardeinstellung und die empfohlene Einstellung.

    HinweisHinweis

    Der Istwert, den der Database Engine (Datenbankmodul) für MAX_DOP festlegt, ist möglicherweise kleiner als der angegebene Wert. Der endgültige Wert wird vom Formelmininimum (255, Anzahl der CPUs) bestimmt.

    VorsichtshinweisVorsicht

    Das Ändern von MAX_DOP kann die Leistung des Servers beeinträchtigen. Wenn Sie MAX_DOP ändern müssen, wird empfohlen, diesen auf einen Wert festzulegen, der kleiner oder gleich der maximalen Anzahl der Hardware- Zeitplanungsmodule ist, die in einem einzelnen NUMA-Knoten vorhanden sind. Es wird empfohlen, MAX_DOP nicht auf einen höheren Wert als 8 festzulegen.

    MAX_DOP wird wie folgt gehandhabt:

    • MAX_DOP als Abfragehinweis wird so lange berücksichtigt, wie die Arbeitsauslastungsgruppe MAX_DOP nicht überschritten wird.

    • ###MAX_DOP als Abfragehinweis überschreibt immer sp_configure 'max. Grad an Parallelität'.

    • Die Arbeitsauslastungsgruppe MAX_DOP überschreibt sp_configure 'max degree of parallelism'.

    • Wenn die Abfrage zur Kompilierzeit als seriell (MAX_DOP = 1 ) markiert ist, kann sie zur Laufzeit nicht wieder in parallel geändert werden, und zwar unabhängig von der Arbeitsauslastungsgruppe oder der sp_configure-Einstellung.

    Nach der Konfiguration von DOP kann nur der gewährte Arbeitsspeicher verringert werden. Die Neukonfiguration der Arbeitsauslastungsgruppe ist während des Wartens in der Speicherzuweisungs-Warteschlange nicht sichtbar.

  • GROUP_MAX_REQUESTS = value
    Gibt die maximale Anzahl gleichzeitiger Anforderungen an, die in der Arbeitsauslastungsgruppe ausgeführt werden können. value muss 0 (null) oder eine positive ganze Zahl sein. Die Standardeinstellung für value (0) lässt unbegrenzte Anforderungen zu.

  • USING { pool_name | "default" }
    Verknüpft die Arbeitsauslastungsgruppe mit dem benutzerdefinierten Ressourcenpool, der durch pool_name angegeben wird, wodurch die Arbeitsauslastungsgruppe in den Ressourcenpool eingefügt wird. Wenn pool_name nicht bereitgestellt wird oder wenn das USING-Argument nicht verwendet wird, wird die Arbeitsauslastungsgruppe in den vordefinierten Pool der Ressourcenkontrolle eingefügt.

    Die "default"-Option muss in Anführungszeichen ("") oder Klammern ([]) eingeschlossen werden, wenn sie mit ALTER WORKLOAD GROUP verwendet wird, um einen Konflikt mit dem vom System reservierten Wort DEFAULT zu vermeiden. Weitere Informationen finden Sie unter Begrenzte Bezeichner (Datenbankmodul).

    HinweisHinweis

    Bei der "default"-Option wird die Groß-/Kleinschreibung beachtet.

Hinweise

ALTER WORKLOAD GROUP ist für die Standardgruppe zulässig.

Änderungen an der Konfiguration der Arbeitsauslastungsgruppe werden erst wirksam, nachdem ALTER RESOURCE GOVERNOR RECONFIGURE ausgeführt wurde.

Sie sollten bei der Ausführung von DDL-Anweisungen mit den Status der Ressourcenkontrolle vertraut sein. Weitere Informationen finden Sie unter Status der Ressourcenkontrolle.

REQUEST_MEMORY_GRANT_PERCENT: In SQL Server 2005 kann bei der Indexerstellung mehr Arbeitsbereichsspeicher verwendet werden, als ursprünglich zugewiesen, um eine bessere Leistung zu erzielen. Diese besondere Behandlung wird von der Ressourcenkontrolle in SQL Server 2008 unterstützt. Die ursprüngliche und weitere Speicherzuweisung sind jedoch durch den Ressourcenpool und die Einstellungen der Arbeitsauslastungsgruppe begrenzt.

Indexerstellung für eine partitionierte Tabelle

Der durch die Indexerstellung für nicht ausgerichtete partitionierte Tabellen belegte Arbeitsspeicher ist proportional zur Anzahl der beteiligten Partitionen. Wenn der ingesamt erforderliche Arbeitsspeicher die Grenze übersteigt, die pro Abfrage von der Arbeitsauslastungsgruppe für Ressourcenkontrolle festgelegt wurde (REQUEST_MAX_MEMORY_GRANT_PERCENT), kann die Indexerstellung möglicherweise nicht erfolgreich ausgeführt werden. Da die Arbeitsauslastungsgruppe "default" Abfragen zulässt, die die pro Abfrage festgelegte Grenze mit dem mindestens für eine SQL Server 2005-Kompatibilität erforderlichen Arbeitsspeicher übersteigen, können Benutzer dieselbe Indexerstellung in Arbeitsauslastungsgruppen des Typs "default" ausführen. Voraussetzung ist, dass der Standard-Ressourcenpool über ausreichend Gesamtarbeitsspeicher verfügt, um eine solche Abfrage ausführen zu können.

Berechtigungen

Erfordert die CONTROL SERVER-Berechtigung.

Beispiele

Das folgende Beispiel veranschaulicht, wie die Wichtigkeit von Anforderungen in der Standardgruppe von MEDIUM in LOW geändert werden kann.

ALTER WORKLOAD GROUP "default"
WITH (IMPORTANCE = LOW)
GO
ALTER RESOURCE GOVERNOR RECONFIGURE
GO

Das folgende Beispiel veranschaulicht, wie eine Arbeitsauslastungsgruppe aus dem Pool, in dem sie sich befindet, in den Standardpool verschoben wird.

ALTER WORKLOAD GROUP adHoc
USING [default];
GO
ALTER RESOURCE GOVERNOR RECONFIGURE
GO