Freigeben über


ALTER WORKLOAD GROUP (Transact-SQL)

Produkt auswählen

Wählen Sie in der folgenden Zeile den Produktnamen aus, an dem Sie interessiert sind, und nur die Informationen dieses Produkts werden angezeigt.

* SQL Server *  

 

SQL Server und SQL Managed Instance

Ändert eine vorhandene Ressourcenverwaltungs-Workloadgruppenkonfiguration und weist sie optional einem anderen Ressourcen-Gouverneurs-Ressourcenpool zu.

Anmerkung

Für azure SQL Managed Instance müssen Sie sich im Kontext der master-Datenbank befinden, um die Konfiguration der Ressourcenverwaltung zu ändern.

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 | [Standard]

Der Name einer vorhandenen benutzerdefinierten Workloadgruppe oder des integrierten Ressourcengouverneurs default Workloadgruppe.

default müssen in Klammern ([]) oder Anführungszeichen ("") stehen, wenn sie mit ALTER WORKLOAD GROUP verwendet werden, um einen Konflikt mit DEFAULTzu vermeiden, bei dem es sich um ein reserviertes Systemwort handelt. Weitere Informationen finden Sie unter Datenbankbezeichner.

Integrierte Ressourcenpools und Workloadgruppen verwenden alle Kleinbuchstaben, z. B. default. Verwenden Sie die Kleinschreibung default auf Servern, auf denen eine Sortierung zwischen Groß- und Kleinschreibung verwendet wird. Server mit nicht beachteter Sortierung behandeln default, Defaultund DEFAULT mit demselben Wert.

WICHTIGKEIT = { NIEDRIG | MITTEL | HIGH }

Gibt die relative Wichtigkeit einer Anforderung in der Workloadgruppe an. Der Standardwert ist MEDIUM.

IMPORTANCE ist lokal für den Ressourcenpool, der die Workloadgruppe enthält. Arbeitsauslastungsgruppen unterschiedlicher Bedeutung innerhalb desselben Ressourcenpools wirken sich gegenseitig aus, wirken sich jedoch nicht auf Workloadgruppen in anderen Ressourcenpools aus.

REQUEST_MAX_MEMORY_GRANT_PERCENT = Wert

Gibt die maximale Menge an Arbeitsspeicher des Abfragearbeitsbereichs an, die eine einzelne Anforderung aus dem Pool übernehmen kann. Wert ist ein Prozentsatz der durch MAX_MEMORY_PERCENTdefinierten Ressourcenpoolgröße. Der Standardwert ist 25.

In SQL Server 2017 (14.x) und älter ist Wert eine ganze Zahl, und der zulässige Bereich liegt zwischen 1 und 100.

Ab SQL Server 2019 (15.x) kann der Wert mithilfe des datentyps "float" nachkommaal sein. Der zulässige Bereich liegt zwischen 0 und 100.

Wichtig

Der angegebene Betrag bezieht sich nur auf den Abfragearbeitsbereichspeicher, der über Abfragespeicherzuweisungen abgerufen wird.

Es wird nicht empfohlen, Wert festzulegen, zu groß ist (z. B. größer als 70), da der Server möglicherweise nicht genügend freien Arbeitsspeicher für andere gleichzeitige Abfragen festlegen kann. Dies kann zu einem Timeout für die Speichererteilung Fehler 8645führen.

Das Festlegen Werts auf 0 oder einen kleinen Wert kann verhindern, dass Abfragen mit Operatoren, die Arbeitsbereichsspeicher erfordern, z. B. sort und hash, in benutzerdefinierten Workloadgruppen ausgeführt werden. Wenn die Anforderungen an den Abfragespeicher den von diesem Parameter definierten Grenzwert überschreiten, tritt das folgende Verhalten auf:

  • Bei benutzerdefinierten Workloadgruppen versucht der Server, den Grad der Parallelität (DOP) der Anforderung (Abfrage) zu verringern, bis die Speicheranforderung unter den Grenzwert fällt, oder bis DOP gleich 1 ist. Wenn die Anforderung des Abfragespeichers immer noch größer als der Grenzwert ist, tritt Fehler 8657 auf, und die Abfrage schlägt fehl.
  • Für die internal- und default Workloadgruppen ermöglicht der Server die Abfrage, den erforderlichen Arbeitsspeicher abzurufen.

In beiden Fällen kann Fehler 8645 auftreten, wenn der Server nicht genügend physischen Arbeitsspeicher hat.

REQUEST_MAX_CPU_TIME_SEC = Wert

Gibt die maximale CPU-Zeit in Sekunden an, die eine Anforderung verwenden kann. Wert muss 0 oder eine positive ganze Zahl sein. Die Standardeinstellung für Wert ist 0, was bedeutet, dass unbegrenzt.

Standardmäßig verhindert die Ressourcenkontrolle nicht, dass eine Anforderung fortgesetzt wird, wenn die maximale Zeit überschritten wird. Es wird jedoch ein Ereignis generiert. Weitere Informationen finden Sie unter CPU-Schwellenwert überschrittene Ereignisklasse.

Ab SQL Server 2016 (13.x) SP2 und SQL Server 2017 (14.x) CU3 und verwendung Ablaufverfolgungskennzeichnung 2422wird eine Anforderung abgebrochen, wenn die maximale CPU-Zeit überschritten wird.

REQUEST_MEMORY_GRANT_TIMEOUT_SEC = Wert

Gibt die maximale Zeit in Sekunden an, die eine Abfrage auf eine Speichererteilung aus dem Speicher des Abfragearbeitsbereichs warten kann, um verfügbar zu werden. Wert muss 0 oder eine positive ganze Zahl sein. Die Standardeinstellung für Wert, 0, verwendet eine interne Berechnung basierend auf den Abfragekosten, um die maximale Zeit zu bestimmen.

Eine Abfrage schlägt nicht immer fehl, wenn ein Timeout für die Speichererteilung erreicht ist. Eine Abfrage schlägt nur fehl, wenn zu viele gleichzeitige Abfragen ausgeführt werden. Andernfalls erhält die Abfrage möglicherweise nur die minimale Speichererteilung, was zu einer reduzierten Abfrageleistung führt.

MAX_DOP = Wert

Gibt den maximalen Grad an Parallelität (MAXDOP) für die parallele Abfrageausführung an. Der zulässige Bereich für Wert liegt zwischen 0 und 64. Die Standardeinstellung für Wert, 0, verwendet die globale Einstellung.

Weitere Informationen finden Sie unter MAXDOP-.

GROUP_MAX_REQUESTS = Wert

Gibt die maximale Anzahl gleichzeitiger Anforderungen an, die in der Workloadgruppe ausgeführt werden dürfen. Wert muss 0 oder eine positive ganze Zahl sein. Die Standardeinstellung für Wert ist 0 und ermöglicht unbegrenzte Anforderungen. Wenn die maximalen gleichzeitigen Anforderungen erreicht werden, kann eine Sitzung in dieser Gruppe erstellt werden, wird jedoch in einen Wartezustand versetzt, bis die Anzahl gleichzeitiger Anforderungen unter den angegebenen Wert fällt.

USING { pool_name | [Standard] }

Ordnet die Workloadgruppe dem durch pool_nameidentifizierten benutzerdefinierten Ressourcenpool oder dem default Ressourcenpool zu. Wenn pool_name nicht angegeben wird oder das argument USING nicht angegeben ist, wird die Workloadgruppe dem integrierten default-Pool zugeordnet.

default ist ein reserviertes Wort, das in USINGangegeben ist, muss in eckige Klammern ([]) oder Anführungszeichen ("") eingeschlossen werden.

Integrierte Ressourcenpools und Workloadgruppen verwenden alle Kleinbuchstaben, z. B. default. Verwenden Sie die Kleinschreibung default auf Servern, auf denen eine Sortierung zwischen Groß- und Kleinschreibung verwendet wird. Server mit nicht beachteter Sortierung behandeln default, Defaultund DEFAULT mit demselben Wert.

Bemerkungen

ALTER WORKLOAD GROUP ist für die default Workloadgruppe, aber nicht für die internal Gruppe zulässig.

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

Weitere Informationen finden Sie unter Resource Governor und Resource Governor Workload Group.

MAXDOP

Bei einer bestimmten Abfrage wird die effektive MAXDOP wie folgt bestimmt:

  • MAXDOP als Abfragehinweis wird berücksichtigt, solange die Workloadgruppe MAX_DOP Einstellung nicht überschritten wird.
  • MAXDOP als Abfragehinweis setzt die max degree of parallelism Serverkonfiguration immer außer Kraft. Weitere Informationen finden Sie unter Serverkonfiguration: max. Grad der Parallelität.
  • Die Workloadgruppe MAX_DOP setzt die max degree of parallelism Serverkonfiguration und die MAXDOPDatenbankbereichskonfigurationaußer Kraft.

Der MAXDOP Grenzwert wird pro Vorgangfestgelegt. Es handelt sich nicht um ein Anforderungslimit oder pro Abfrage. Während einer Ausführung einer parallelen Abfrage kann eine einzelne Anforderung mehrere Aufgaben spawennen, die einem Scheduler-zugewiesen sind. Weitere Informationen finden Sie im Leitfaden zur Thread- und Aufgabenarchitektur.

Wenn eine Abfrage zur Kompilierungszeit (MAXDOP = 1) als seriell gekennzeichnet ist, kann sie unabhängig von der Workloadgruppe oder Serverkonfigurationseinstellung nicht zur Laufzeit mit Parallelität ausgeführt werden. Nachdem MAXDOP für eine Abfrage bestimmt wurde, kann sie aufgrund des Arbeitsspeicherdrucks nur verringert werden. Die Workloadgruppenkonfigurierung wirkt sich nicht auf Abfragen aus, die in der Speichererteilungswarteschlange warten.

Zwischengespeicherte Pläne

Wenn Sie einen Plan ändern, der sich auf die Einstellung wie MAX_DOPauswirkt, wird die neue Einstellung in zuvor zwischengespeicherten Plänen erst nach der Ausführung DBCC FREEPROCCACHE (<pool_name>)wirksam, wobei <pool_name> der Name eines Ressourcenverwaltungsressourcenpools ist, der von der aktuellen Workloadgruppe verwendet wird.

  • Wenn Sie MAX_DOP auf 1 ändern, ist die Ausführung DBCC FREEPROCCACHE nicht erforderlich, da parallele Pläne im seriellen Modus ausgeführt werden können. Ein solcher Plan kann jedoch weniger effizient sein als ein Plan, der als serieller Plan kompiliert wurde.
  • Wenn sie MAX_DOP von 1 auf 0 oder einen Wert größer als 1 ändern, ist die Ausführung von DBCC FREEPROCCACHE nicht erforderlich. Serielle Pläne können jedoch nicht parallel ausgeführt werden, sodass durch das Löschen des jeweiligen Caches neue Pläne potenziell mit Parallelität kompiliert werden können.

Warnung

Das Löschen zwischengespeicherter Pläne aus einem Ressourcenpool, der mehreren Workloadgruppen zugeordnet ist, wirkt sich auf alle Workloadgruppen aus, wobei der durch <pool_name>identifizierte benutzerdefinierte Ressourcenpool verwendet wird.

Indexerstellung

Aus Leistungsgründen darf die Indexerstellung mehr Arbeitsspeicherarbeitsbereich verwenden als ursprünglich gewährt. Ressourcenkontrolle unterstützt diese spezielle Behandlung. Die anfängliche Gewährung und alle zusätzlichen Speichererteilungen sind jedoch durch die Einstellungen der Workloadgruppe und des Ressourcenpools beschränkt.

Der zum Erstellen eines nicht ausgerichteten Indexes für eine partitionierte Tabelle verbrauchte Arbeitsspeicher ist proportional zur Anzahl der beteiligten Partitionen. Wenn der gesamte erforderliche Arbeitsspeicher den grenzwert pro Abfrage überschreitet, der durch die Einstellung der REQUEST_MAX_MEMORY_GRANT_PERCENT Workloadgruppen erzwungen wird, schlägt die Indexerstellung möglicherweise fehl. Da die default Workloadgruppe einer Abfrage das Limit pro Abfrage mit dem minimal erforderlichen Arbeitsspeicher für die Abwärtskompatibilität überschreitet, können Sie möglicherweise denselben Index mithilfe der default Workloadgruppe erstellen, wenn der default Ressourcenpool über genügend Gesamtspeicher verfügt.

Erlaubnisse

Erfordert die berechtigung CONTROL SERVER.

Beispiele

Das folgende Beispiel zeigt, wie Sie die Wichtigkeit von Anforderungen in der Standardgruppe von MEDIUM in LOWändern.

ALTER WORKLOAD GROUP [default]
WITH (IMPORTANCE = LOW);

ALTER RESOURCE GOVERNOR RECONFIGURE;

Das folgende Beispiel zeigt, wie Sie eine Workloadgruppe aus dem Pool verschieben, den sie derzeit in den default Pool einbezieht.

ALTER WORKLOAD GROUP adHoc
USING [default];

ALTER RESOURCE GOVERNOR RECONFIGURE;

* SQL Managed Instance *  

 

SQL Server und SQL Managed Instance

Ändert eine vorhandene Ressourcenverwaltungs-Workloadgruppenkonfiguration und weist sie optional einem anderen Ressourcen-Gouverneurs-Ressourcenpool zu.

Anmerkung

Für azure SQL Managed Instance müssen Sie sich im Kontext der master-Datenbank befinden, um die Konfiguration der Ressourcenverwaltung zu ändern.

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 | [Standard]

Der Name einer vorhandenen benutzerdefinierten Workloadgruppe oder des integrierten Ressourcengouverneurs default Workloadgruppe.

default müssen in Klammern ([]) oder Anführungszeichen ("") stehen, wenn sie mit ALTER WORKLOAD GROUP verwendet werden, um einen Konflikt mit DEFAULTzu vermeiden, bei dem es sich um ein reserviertes Systemwort handelt. Weitere Informationen finden Sie unter Datenbankbezeichner.

Integrierte Ressourcenpools und Workloadgruppen verwenden alle Kleinbuchstaben, z. B. default. Verwenden Sie die Kleinschreibung default auf Servern, auf denen eine Sortierung zwischen Groß- und Kleinschreibung verwendet wird. Server mit nicht beachteter Sortierung behandeln default, Defaultund DEFAULT mit demselben Wert.

WICHTIGKEIT = { NIEDRIG | MITTEL | HIGH }

Gibt die relative Wichtigkeit einer Anforderung in der Workloadgruppe an. Der Standardwert ist MEDIUM.

IMPORTANCE ist lokal für den Ressourcenpool, der die Workloadgruppe enthält. Arbeitsauslastungsgruppen unterschiedlicher Bedeutung innerhalb desselben Ressourcenpools wirken sich gegenseitig aus, wirken sich jedoch nicht auf Workloadgruppen in anderen Ressourcenpools aus.

REQUEST_MAX_MEMORY_GRANT_PERCENT = Wert

Gibt die maximale Menge an Arbeitsspeicher des Abfragearbeitsbereichs an, die eine einzelne Anforderung aus dem Pool übernehmen kann. Wert ist ein Prozentsatz der durch MAX_MEMORY_PERCENTdefinierten Ressourcenpoolgröße. Der Standardwert ist 25.

In SQL Server 2017 (14.x) und älter ist Wert eine ganze Zahl, und der zulässige Bereich liegt zwischen 1 und 100.

Ab SQL Server 2019 (15.x) kann der Wert mithilfe des datentyps "float" nachkommaal sein. Der zulässige Bereich liegt zwischen 0 und 100.

Wichtig

Der angegebene Betrag bezieht sich nur auf den Abfragearbeitsbereichspeicher, der über Abfragespeicherzuweisungen abgerufen wird.

Es wird nicht empfohlen, Wert festzulegen, zu groß ist (z. B. größer als 70), da der Server möglicherweise nicht genügend freien Arbeitsspeicher für andere gleichzeitige Abfragen festlegen kann. Dies kann zu einem Timeout für die Speichererteilung Fehler 8645führen.

Das Festlegen Werts auf 0 oder einen kleinen Wert kann verhindern, dass Abfragen mit Operatoren, die Arbeitsbereichsspeicher erfordern, z. B. sort und hash, in benutzerdefinierten Workloadgruppen ausgeführt werden. Wenn die Anforderungen an den Abfragespeicher den von diesem Parameter definierten Grenzwert überschreiten, tritt das folgende Verhalten auf:

  • Bei benutzerdefinierten Workloadgruppen versucht der Server, den Grad der Parallelität (DOP) der Anforderung (Abfrage) zu verringern, bis die Speicheranforderung unter den Grenzwert fällt, oder bis DOP gleich 1 ist. Wenn die Anforderung des Abfragespeichers immer noch größer als der Grenzwert ist, tritt Fehler 8657 auf, und die Abfrage schlägt fehl.
  • Für die internal- und default Workloadgruppen ermöglicht der Server die Abfrage, den erforderlichen Arbeitsspeicher abzurufen.

In beiden Fällen kann Fehler 8645 auftreten, wenn der Server nicht genügend physischen Arbeitsspeicher hat.

REQUEST_MAX_CPU_TIME_SEC = Wert

Gibt die maximale CPU-Zeit in Sekunden an, die eine Anforderung verwenden kann. Wert muss 0 oder eine positive ganze Zahl sein. Die Standardeinstellung für Wert ist 0, was bedeutet, dass unbegrenzt.

Standardmäßig verhindert die Ressourcenkontrolle nicht, dass eine Anforderung fortgesetzt wird, wenn die maximale Zeit überschritten wird. Es wird jedoch ein Ereignis generiert. Weitere Informationen finden Sie unter CPU-Schwellenwert überschrittene Ereignisklasse.

Ab SQL Server 2016 (13.x) SP2 und SQL Server 2017 (14.x) CU3 und verwendung Ablaufverfolgungskennzeichnung 2422wird eine Anforderung abgebrochen, wenn die maximale CPU-Zeit überschritten wird.

REQUEST_MEMORY_GRANT_TIMEOUT_SEC = Wert

Gibt die maximale Zeit in Sekunden an, die eine Abfrage auf eine Speichererteilung aus dem Speicher des Abfragearbeitsbereichs warten kann, um verfügbar zu werden. Wert muss 0 oder eine positive ganze Zahl sein. Die Standardeinstellung für Wert, 0, verwendet eine interne Berechnung basierend auf den Abfragekosten, um die maximale Zeit zu bestimmen.

Eine Abfrage schlägt nicht immer fehl, wenn ein Timeout für die Speichererteilung erreicht ist. Eine Abfrage schlägt nur fehl, wenn zu viele gleichzeitige Abfragen ausgeführt werden. Andernfalls erhält die Abfrage möglicherweise nur die minimale Speichererteilung, was zu einer reduzierten Abfrageleistung führt.

MAX_DOP = Wert

Gibt den maximalen Grad an Parallelität (MAXDOP) für die parallele Abfrageausführung an. Der zulässige Bereich für Wert liegt zwischen 0 und 64. Die Standardeinstellung für Wert, 0, verwendet die globale Einstellung.

Weitere Informationen finden Sie unter MAXDOP-.

GROUP_MAX_REQUESTS = Wert

Gibt die maximale Anzahl gleichzeitiger Anforderungen an, die in der Workloadgruppe ausgeführt werden dürfen. Wert muss 0 oder eine positive ganze Zahl sein. Die Standardeinstellung für Wert ist 0 und ermöglicht unbegrenzte Anforderungen. Wenn die maximalen gleichzeitigen Anforderungen erreicht werden, kann eine Sitzung in dieser Gruppe erstellt werden, wird jedoch in einen Wartezustand versetzt, bis die Anzahl gleichzeitiger Anforderungen unter den angegebenen Wert fällt.

USING { pool_name | [Standard] }

Ordnet die Workloadgruppe dem durch pool_nameidentifizierten benutzerdefinierten Ressourcenpool oder dem default Ressourcenpool zu. Wenn pool_name nicht angegeben wird oder das argument USING nicht angegeben ist, wird die Workloadgruppe dem integrierten default-Pool zugeordnet.

default ist ein reserviertes Wort, das in USINGangegeben ist, muss in eckige Klammern ([]) oder Anführungszeichen ("") eingeschlossen werden.

Integrierte Ressourcenpools und Workloadgruppen verwenden alle Kleinbuchstaben, z. B. default. Verwenden Sie die Kleinschreibung default auf Servern, auf denen eine Sortierung zwischen Groß- und Kleinschreibung verwendet wird. Server mit nicht beachteter Sortierung behandeln default, Defaultund DEFAULT mit demselben Wert.

Bemerkungen

ALTER WORKLOAD GROUP ist für die default Workloadgruppe, aber nicht für die internal Gruppe zulässig.

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

Weitere Informationen finden Sie unter Resource Governor und Resource Governor Workload Group.

MAXDOP

Bei einer bestimmten Abfrage wird die effektive MAXDOP wie folgt bestimmt:

  • MAXDOP als Abfragehinweis wird berücksichtigt, solange die Workloadgruppe MAX_DOP Einstellung nicht überschritten wird.
  • MAXDOP als Abfragehinweis setzt die max degree of parallelism Serverkonfiguration immer außer Kraft. Weitere Informationen finden Sie unter Serverkonfiguration: max. Grad der Parallelität.
  • Die Workloadgruppe MAX_DOP setzt die max degree of parallelism Serverkonfiguration und die MAXDOPDatenbankbereichskonfigurationaußer Kraft.

Der MAXDOP Grenzwert wird pro Vorgangfestgelegt. Es handelt sich nicht um ein Anforderungslimit oder pro Abfrage. Während einer Ausführung einer parallelen Abfrage kann eine einzelne Anforderung mehrere Aufgaben spawennen, die einem Scheduler-zugewiesen sind. Weitere Informationen finden Sie im Leitfaden zur Thread- und Aufgabenarchitektur.

Wenn eine Abfrage zur Kompilierungszeit (MAXDOP = 1) als seriell gekennzeichnet ist, kann sie unabhängig von der Workloadgruppe oder Serverkonfigurationseinstellung nicht zur Laufzeit mit Parallelität ausgeführt werden. Nachdem MAXDOP für eine Abfrage bestimmt wurde, kann sie aufgrund des Arbeitsspeicherdrucks nur verringert werden. Die Workloadgruppenkonfigurierung wirkt sich nicht auf Abfragen aus, die in der Speichererteilungswarteschlange warten.

Zwischengespeicherte Pläne

Wenn Sie einen Plan ändern, der sich auf die Einstellung wie MAX_DOPauswirkt, wird die neue Einstellung in zuvor zwischengespeicherten Plänen erst nach der Ausführung DBCC FREEPROCCACHE (<pool_name>)wirksam, wobei <pool_name> der Name eines Ressourcenverwaltungsressourcenpools ist, der von der aktuellen Workloadgruppe verwendet wird.

  • Wenn Sie MAX_DOP auf 1 ändern, ist die Ausführung DBCC FREEPROCCACHE nicht erforderlich, da parallele Pläne im seriellen Modus ausgeführt werden können. Ein solcher Plan kann jedoch weniger effizient sein als ein Plan, der als serieller Plan kompiliert wurde.
  • Wenn sie MAX_DOP von 1 auf 0 oder einen Wert größer als 1 ändern, ist die Ausführung von DBCC FREEPROCCACHE nicht erforderlich. Serielle Pläne können jedoch nicht parallel ausgeführt werden, sodass durch das Löschen des jeweiligen Caches neue Pläne potenziell mit Parallelität kompiliert werden können.

Warnung

Das Löschen zwischengespeicherter Pläne aus einem Ressourcenpool, der mehreren Workloadgruppen zugeordnet ist, wirkt sich auf alle Workloadgruppen aus, wobei der durch <pool_name>identifizierte benutzerdefinierte Ressourcenpool verwendet wird.

Indexerstellung

Aus Leistungsgründen darf die Indexerstellung mehr Arbeitsspeicherarbeitsbereich verwenden als ursprünglich gewährt. Ressourcenkontrolle unterstützt diese spezielle Behandlung. Die anfängliche Gewährung und alle zusätzlichen Speichererteilungen sind jedoch durch die Einstellungen der Workloadgruppe und des Ressourcenpools beschränkt.

Der zum Erstellen eines nicht ausgerichteten Indexes für eine partitionierte Tabelle verbrauchte Arbeitsspeicher ist proportional zur Anzahl der beteiligten Partitionen. Wenn der gesamte erforderliche Arbeitsspeicher den grenzwert pro Abfrage überschreitet, der durch die Einstellung der REQUEST_MAX_MEMORY_GRANT_PERCENT Workloadgruppen erzwungen wird, schlägt die Indexerstellung möglicherweise fehl. Da die default Workloadgruppe einer Abfrage das Limit pro Abfrage mit dem minimal erforderlichen Arbeitsspeicher für die Abwärtskompatibilität überschreitet, können Sie möglicherweise denselben Index mithilfe der default Workloadgruppe erstellen, wenn der default Ressourcenpool über genügend Gesamtspeicher verfügt.

Erlaubnisse

Erfordert die berechtigung CONTROL SERVER.

Beispiele

Das folgende Beispiel zeigt, wie Sie die Wichtigkeit von Anforderungen in der Standardgruppe von MEDIUM in LOWändern.

ALTER WORKLOAD GROUP [default]
WITH (IMPORTANCE = LOW);

ALTER RESOURCE GOVERNOR RECONFIGURE;

Das folgende Beispiel zeigt, wie Sie eine Workloadgruppe aus dem Pool verschieben, den sie derzeit in den default Pool einbezieht.

ALTER WORKLOAD GROUP adHoc
USING [default];

ALTER RESOURCE GOVERNOR RECONFIGURE;

* Azure Synapse
Analyse *
 

 

Azure Synapse Analytics

Ändert eine vorhandene Workloadgruppe.

Weitere Informationen dazu, wie ALTER WORKLOAD GROUP sich auf einem System mit ausgeführten und in die Warteschlange gestellten Anforderungen verhalten, finden Sie im abschnitt ALTER WORKLOAD GROUP Verhalten weiter unten.

Einschränkungen für CREATE WORKLOAD GROUP gelten auch für ALTER WORKLOAD GROUP. Bevor Sie Parameter ändern, sys.workload_management_workload_groups Abfragen, um sicherzustellen, dass sich die Werte in akzeptablen Bereichen befinden.

Syntax

ALTER WORKLOAD GROUP group_name
WITH
([ MIN_PERCENTAGE_RESOURCE = value ]
  [ [ , ] CAP_PERCENTAGE_RESOURCE = value ]
  [ [ , ] REQUEST_MIN_RESOURCE_GRANT_PERCENT = value ]
  [ [ , ] REQUEST_MAX_RESOURCE_GRANT_PERCENT = value ]
  [ [ , ] IMPORTANCE = { LOW | BELOW_NORMAL | NORMAL | ABOVE_NORMAL | HIGH }]
  [ [ , ] QUERY_EXECUTION_TIMEOUT_SEC = value ] )
  [ ; ]

Argumente

group_name

Ist der Name der vorhandenen benutzerdefinierten Workloadgruppe, die geändert wird. group_name kann nicht geändert werden.

MIN_PERCENTAGE_RESOURCE = Wert

Wert ist ein ganzzahliger Bereich von 0 bis 100. Beim Ändern MIN_PERCENTAGE_RESOURCE kann die Summe der MIN_PERCENTAGE_RESOURCE in allen Workloadgruppen 100 nicht überschreiten. Das Ändern MIN_PERCENTAGE_RESOURCE erfordert, dass alle ausgeführten Abfragen in der Workloadgruppe abgeschlossen werden, bevor der Befehl abgeschlossen wird. Weitere Informationen finden Sie im Abschnitt ALTER WORKLOAD GROUP-Verhalten Abschnitt in diesem Artikel.

CAP_PERCENTAGE_RESOURCE = Wert

Wert ist ein ganzzahliger Bereich zwischen 1 und 100. Der Wert für CAP_PERCENTAGE_RESOURCE muss größer als MIN_PERCENTAGE_RESOURCE sein. Das Ändern CAP_PERCENTAGE_RESOURCE erfordert, dass alle ausgeführten Abfragen in der Workloadgruppe abgeschlossen werden, bevor der Befehl abgeschlossen wird. Weitere Informationen finden Sie im Abschnitt ALTER WORKLOAD GROUP-Verhalten Abschnitt in diesem Artikel.

REQUEST_MIN_RESOURCE_GRANT_PERCENT = Wert

Wert ist eine Dezimalzahl mit einem Bereich zwischen 0,75 und 100,00. Der Wert für REQUEST_MIN_RESOURCE_GRANT_PERCENT muss ein Faktor MIN_PERCENTAGE_RESOURCE sein und kleiner als CAP_PERCENTAGE_RESOURCE sein.

REQUEST_MAX_RESOURCE_GRANT_PERCENT = Wert

Wert ist eine Dezimalzahl und muss größer als REQUEST_MIN_RESOURCE_GRANT_PERCENT sein.

WICHTIGKEIT = { NIEDRIG | BELOW_NORMAL | NORMAL | ABOVE_NORMAL | HIGH }

Ändert die Standard-Wichtigkeit einer Anforderung für die Workloadgruppe.

QUERY_EXECUTION_TIMEOUT_SEC = Wert

Ändert die maximale Zeit in Sekunden, die eine Abfrage ausführen kann, bevor sie abgebrochen wird. Der Wert muss 0 oder eine positive ganze Zahl sein. Die Standardeinstellung für den Wert ist 0, was bedeutet, dass sie unbegrenzt ist.

Erlaubnisse

Erfordert CONTROL DATABASE Berechtigung.

Beispiel

Im folgenden Beispiel werden die Werte in der Katalogansicht auf eine Workloadgruppe mit dem Namen wgDataLoadsüberprüft und die Werte geändert.

SELECT *
FROM sys.workload_management_workload_groups
WHERE [name] = 'wgDataLoads'

ALTER WORKLOAD GROUP wgDataLoads WITH
( MIN_PERCENTAGE_RESOURCE            = 40
, CAP_PERCENTAGE_RESOURCE            = 80
, REQUEST_MIN_RESOURCE_GRANT_PERCENT = 10 )

ALTER WORKLOAD GROUP-Verhalten

Zu jedem Zeitpunkt gibt es drei Arten von Anforderungen im System:

  • Anforderungen, die noch nicht klassifiziert wurden.
  • Anforderungen, die klassifiziert und auf Objektsperren oder Systemressourcen warten.
  • Anforderungen, die klassifiziert und ausgeführt werden.

Basierend auf den Eigenschaften einer Workloadgruppe, die geändert wird, unterscheidet sich der Zeitpunkt, zu dem die Einstellungen wirksam werden.

Wichtigkeit oder query_execution_timeout

Für die Wichtigkeit und query_execution_timeout Eigenschaften greifen nicht klassifizierte Anforderungen die neuen Konfigurationswerte auf. Warten und Ausführen von Anforderungen werden mit der alten Konfiguration ausgeführt. Die ALTER WORKLOAD GROUP Anforderung wird sofort ausgeführt, unabhängig davon, ob abfragen in der Workloadgruppe ausgeführt werden.

REQUEST_MIN_RESOURCE_GRANT_PERCENT oder REQUEST_MAX_RESOURCE_GRANT_PERCENT

Führen Sie für REQUEST_MIN_RESOURCE_GRANT_PERCENT und REQUEST_MAX_RESOURCE_GRANT_PERCENT Anforderungen mit der alten Konfiguration aus. Wartende Anforderungen und nicht klassifizierte Anforderungen greifen die neuen Konfigurationswerte auf. Die ALTER WORKLOAD GROUP Anforderung wird sofort ausgeführt, unabhängig davon, ob abfragen in der Workloadgruppe ausgeführt werden.

MIN_PERCENTAGE_RESOURCE oder CAP_PERCENTAGE_RESOURCE

Für MIN_PERCENTAGE_RESOURCE und CAP_PERCENTAGE_RESOURCE werden Anforderungen mit der alten Konfiguration ausgeführt. Wartende Anforderungen und nicht klassifizierte Anforderungen greifen die neuen Konfigurationswerte auf.

Das Ändern MIN_PERCENTAGE_RESOURCE und CAP_PERCENTAGE_RESOURCE erfordert, dass ausgeführte Anforderungen in der Workloadgruppe, die geändert wird, entwässert werden. Beim Verringern MIN_PERCENTAGE_RESOURCE werden die freigegebenen Ressourcen an den Freigabepool zurückgegeben, sodass Anforderungen von anderen Workloadgruppen die Möglichkeit zur Nutzung erhalten. Umgekehrt wird das Erhöhen der MIN_PERCENTAGE_RESOURCE warten, bis Anforderungen, die nur die erforderlichen Ressourcen aus dem freigegebenen Pool verwenden, abgeschlossen werden. Der ALTER WORKLOAD GROUP-Vorgang hat vorrang vor dem Zugriff auf freigegebene Ressourcen gegenüber anderen Anforderungen, die auf die Ausführung im freigegebenen Pool warten. Wenn die Summe der MIN_PERCENTAGE_RESOURCE 100%überschreitet, schlägt die ALTER WORKLOAD GROUP Anforderung sofort fehl.

Sperrverhalten

Das Ändern einer Workloadgruppe erfordert eine globale Sperre für alle Workloadgruppen. Eine Anforderung zum Ändern einer Workloadgruppe würde sich hinter bereits übermittelten Erstellungs- oder Drop-Workload-Gruppenanforderungen in die Warteschlange stellen. Wenn eine Reihe von Änderungsanweisungen gleichzeitig übermittelt wird, werden sie in der Reihenfolge verarbeitet, in der sie übermittelt werden.

Siehe auch