Freigeben über


CREATE WORKLOAD GROUP (Transact-SQL)

Auswählen eines Produkts

Wählen Sie in der folgenden Zeile den Namen des Produkts aus, an dem Sie interessiert sind. Dann werden nur Informationen zu diesem Produkt angezeigt.

* SQL Server *  

 

SQL Server und SQL Managed Instance

Erstellt eine Ressourcenkontrolle-Workloadgruppe und ordnet die Workloadgruppe einem Ressourcenverwaltungsressourcenpool zu.

Ressourcenkontrolle ist in jeder Edition von SQL Server nicht verfügbar. Eine Liste der Funktionen, die von den SQL Server-Editionen unterstützt werden, finden Sie unter Editionen und unterstützte Funktionen von SQL Server 2022.

Hinweis

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

CREATE WORKLOAD GROUP group_name
[ 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] ]
    [ [ , ] EXTERNAL external_pool_name | [default] ]
    } ]
[ ; ]

Argumente

group_name

Der benutzerdefinierte Name für die Arbeitsauslastungsgruppe. group_name alphanumerisch ist, kann bis zu 128 Zeichen lang sein, muss innerhalb einer Instanz des Datenbankmoduls eindeutig sein und muss die Regeln für Datenbankbezeichnereinhalten.

IMPORTANCE = { LOW | MEDIUM | HIGH }

Gibt die relative Wichtigkeit einer Anforderung in der Arbeitsauslastungsgruppe 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 = value

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 = value

Gibt die maximale CPU-Zeit in Sekunden an, die eine Anforderung beanspruchen kann. value muss 0 (null) oder ein positiver Integer sein. Die Standardeinstellung für value ist 0 (null), also 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 Threshold Exceeded (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 = value

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. value muss 0 (null) oder ein positiver Integer 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.

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 = value

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

Weitere Informationen finden Sie unter MAXDOP-.

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 ein positiver Integer sein. Der Standardwert von value ist 0 (null) und lässt eine unbegrenzte Anzahl von Anforderungen zu. 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.

EXTERNE external_pool_name | [Standard]

Gilt für: SQL Server 2016 (13.x) und höher.

Die Arbeitsauslastungsgruppe kann einen externen Ressourcenpool angeben. Sie können eine Workloadgruppe definieren und sie zwei Pools zuordnen:

  • Ein Ressourcenpool für die Arbeitslasten des Datenbankmoduls.
  • Ein externer Ressourcenpool für externe Prozesse. Weitere Informationen finden Sie unter sp_execute_external_script.

Bemerkungen

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 Grenzwert MAXDOP wird taskbezogen festgelegt. Dieser Grenzwert gilt nicht pro Anforderung 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.

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.

Berechtigungen

Erfordert die berechtigung CONTROL SERVER.

Beispiel

Erstellt eine Workloadgruppe namens newReports im default Ressourcenpool und begrenzt die maximale Arbeitsspeicherzuteilung, die maximale CPU-Zeit für eine Anforderung und MAXDOP.

CREATE WORKLOAD GROUP newReports
WITH (
     REQUEST_MAX_MEMORY_GRANT_PERCENT = 2.5,
     REQUEST_MAX_CPU_TIME_SEC = 100,
     MAX_DOP = 4
     )
USING [default];

* SQL Managed Instance *  

 

SQL Server und SQL Managed Instance

Erstellt eine Ressourcenkontrolle-Workloadgruppe und ordnet die Workloadgruppe einem Ressourcenverwaltungsressourcenpool zu.

Ressourcenkontrolle ist in jeder Edition von SQL Server nicht verfügbar. Eine Liste der Funktionen, die von den SQL Server-Editionen unterstützt werden, finden Sie unter Editionen und unterstützte Funktionen von SQL Server 2022.

Hinweis

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

CREATE WORKLOAD GROUP group_name
[ 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] ]
    [ [ , ] EXTERNAL external_pool_name | [default] ]
    } ]
[ ; ]

Argumente

group_name

Der benutzerdefinierte Name für die Arbeitsauslastungsgruppe. group_name alphanumerisch ist, kann bis zu 128 Zeichen lang sein, muss innerhalb einer Instanz des Datenbankmoduls eindeutig sein und muss die Regeln für Datenbankbezeichnereinhalten.

IMPORTANCE = { LOW | MEDIUM | HIGH }

Gibt die relative Wichtigkeit einer Anforderung in der Arbeitsauslastungsgruppe 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 = value

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 = value

Gibt die maximale CPU-Zeit in Sekunden an, die eine Anforderung beanspruchen kann. value muss 0 (null) oder ein positiver Integer sein. Die Standardeinstellung für value ist 0 (null), also 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 Threshold Exceeded (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 = value

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. value muss 0 (null) oder ein positiver Integer 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.

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 = value

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

Weitere Informationen finden Sie unter MAXDOP-.

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 ein positiver Integer sein. Der Standardwert von value ist 0 (null) und lässt eine unbegrenzte Anzahl von Anforderungen zu. 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.

EXTERNE external_pool_name | [Standard]

Gilt für: SQL Server 2016 (13.x) und höher.

Die Arbeitsauslastungsgruppe kann einen externen Ressourcenpool angeben. Sie können eine Workloadgruppe definieren und sie zwei Pools zuordnen:

  • Ein Ressourcenpool für die Arbeitslasten des Datenbankmoduls.
  • Ein externer Ressourcenpool für externe Prozesse. Weitere Informationen finden Sie unter sp_execute_external_script.

Bemerkungen

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 Grenzwert MAXDOP wird taskbezogen festgelegt. Dieser Grenzwert gilt nicht pro Anforderung 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.

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.

Berechtigungen

Erfordert die berechtigung CONTROL SERVER.

Beispiel

Erstellt eine Workloadgruppe namens newReports im default Ressourcenpool und begrenzt die maximale Arbeitsspeicherzuteilung, die maximale CPU-Zeit für eine Anforderung und MAXDOP.

CREATE WORKLOAD GROUP newReports
WITH (
     REQUEST_MAX_MEMORY_GRANT_PERCENT = 2.5,
     REQUEST_MAX_CPU_TIME_SEC = 100,
     MAX_DOP = 4
     )
USING [default];

* Azure Synapse
Analytics *
 

 

Azure Synapse Analytics

Erstellt eine Arbeitsauslastungsgruppe Arbeitsauslastungsgruppen sind Container für eine Reihe von Anforderungen und die Grundlage für die Konfiguration der Workloadverwaltung auf einem System. Mit Arbeitsauslastungsgruppen können Sie Ressourcen für die Workloadisolation reservieren und Ressourcen beibehalten, pro Anforderung definieren oder Ausführungsregeln durchsetzen. Sobald die Anweisung abgeschlossen ist, sind die Einstellungen wirksam.

Transact-SQL-Syntaxkonventionen

CREATE 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 ] )
  [ ; ]

group_name
Gibt den Namen an, mit dem die Arbeitsauslastungsgruppe identifiziert werden kann. Der Name group_name ist vom Datentyp „sysname“. Dieses Argument kann bis zu 128 Zeichen lang sein und muss innerhalb der Instanz einen eindeutigen Namen haben.

MIN_PERCENTAGE_RESOURCE = value
Gibt eine garantierte minimale Ressourcenzuordnung für diese Arbeitsauslastungsgruppe an, die nicht mit anderen Arbeitsauslastungsgruppen geteilt wird. Der Arbeitsspeicher ist die einzige Ressource, die von diesem Parameter gesteuert wird. Dabei entspricht value einem Integer zwischen 0 und 100. Die Summe von min_percentage_resource darf für alle Auslastungsgruppen nicht 100 überschreiten. Der Wert für min_percentage_resource darf den von cap_percentage_resource nicht übersteigen. Es gibt effektive Mindestwerte, die pro Dienstebene zulässig sind. Weitere Informationen finden Sie unter Effektive Werte.

CAP_PERCENTAGE_RESOURCE = value
Gibt die maximale Ressourcenverwendung für alle Anforderungen in einer Arbeitsauslastungsgruppe an. Sowohl CPU- als auch Arbeitsspeicherressourcen sind durch diesen Parameter begrenzt. Der zulässige Integerbereich für value liegt zwischen 1 und 100. Der Wert für cap_percentage_resource muss den von min_percentage_resource übersteigen. Der effektive Wert für cap_percentage_resource kann reduziert werden, wenn min_percentage_resource in anderen Arbeitsauslastungsgruppen auf 0 oder höher festgelegt wird.

REQUEST_MIN_RESOURCE_GRANT_PERCENT = value
Legt die Mindestmenge von Ressourcen fest, die pro Anforderung zugeordnet werden. Der Arbeitsspeicher ist die einzige Ressource, die von diesem Parameter gesteuert wird. Hierbei ist value ein erforderlicher Parameter mit einem Gleitkommawert zwischen 0.75 und 100.00. Der Wert für request_min_resource_grant_percent muss ein Vielfaches von 0,25, ein Faktor von min_percentage_resource und weniger als cap_percentage_resource sein. Es gibt effektive Mindestwerte, die pro Dienstebene zulässig sind. Weitere Informationen finden Sie unter Effektive Werte.

Beispiel:

CREATE WORKLOAD GROUP wgSample 
WITH
  ( MIN_PERCENTAGE_RESOURCE = 26                -- integer value
    , REQUEST_MIN_RESOURCE_GRANT_PERCENT = 3.25 -- factor of 26 (guaranteed a minimum of 8 concurrency)
    , CAP_PERCENTAGE_RESOURCE = 100 )

Sehen Sie sich die Werte an, die für die Ressourcenklassen als Richtlinie für request_min_resource_grant_percent verwendet werden. Die folgende Tabelle enthält die Ressourcenzuordnung für Gen2.

Ressourcenklasse Ressourcen in Prozent
Smallrc 3 %
Mediumrc 10 %
Largerc 22 %
Xlargerc 70 %

REQUEST_MAX_RESOURCE_GRANT_PERCENT = value

Diese Zeile legt die Maximalmenge der Ressourcen fest, die pro Anforderung zugeordnet werden. Der Arbeitsspeicher ist die einzige Ressource, die von diesem Parameter gesteuert wird. Dabei ist value ein optionaler Dezimalparameter mit einem Standardwert, der „request_min_resource_grant_percent“ entspricht. Der Wert von value muss größer oder gleich „request_min_resource_grant_percent“ sein. Wenn der Wert von request_max_resource_grant_percent größer als request_min_resource_grant_percent ist und Systemressourcen verfügbar sind, werden einer Anforderung zusätzliche Ressourcen zugeordnet.

IMPORTANCE = { LOW | BELOW_NORMAL | NORMAL | ABOVE_NORMAL | HIGH }

Diese Zeile gibt die Standardwichtigkeit einer Anforderung für die Arbeitsauslastungsgruppe an. Für die Wichtigkeit sind folgende Einstellungen möglich, wobei NORMAL die Standardeinstellung ist:

  • LOW
  • BELOW_NORMAL
  • NORMAL (Standard)
  • ABOVE_NORMAL
  • HIGH

Die Wichtigkeit, die für eine Arbeitsauslastungsgruppe festgelegt wird, entspricht der Standardwichtigkeit für alle Anforderungen in der Arbeitsauslastungsgruppe. Benutzer können die Wichtigkeit auch auf Klassifizierungsebene festlegen und somit die festgelegte Wichtigkeit der Arbeitsauslastungsgruppe überschreiben. Dadurch wird eine Differenzierung der Wichtigkeit für Anforderungen innerhalb einer Arbeitsauslastungsgruppe ermöglicht, um schneller auf nicht reservierte Ressourcen zugreifen zu können. Wenn die Summe von min_percentage_resource in den Arbeitsauslastungsgruppen weniger als 100 ist, sind nicht reservierte Ressourcen vorhanden, die nach Wichtigkeit zugewiesen werden.

QUERY_EXECUTION_TIMEOUT_SEC = value

Diese Zeile gibt die maximale Zeit in Sekunden an, für deren Dauer eine Abfrage ausgeführt werden kann, bevor sie abgebrochen wird. value muss 0 (null) oder ein positiver Integer sein. Die Standardeinstellung für value ist 0 (null). Das bedeutet, dass für die Abfrage kein Timeout eintritt. QUERY_EXECUTION_TIMEOUT_SEC zählt, sobald die Abfrage als ausgeführt erkannt wird, nicht jedoch, wenn die Abfrage in die Warteschlange eingereiht wird.

Bemerkungen

Die entsprechenden Arbeitsauslastungsgruppen für Ressourcenklassen werden aufgrund der Abwärtskompatibilität automatisch generiert. Diese vom System definierten Arbeitsauslastungsgruppen können nicht gelöscht werden. Es können acht zusätzliche benutzerdefinierte Arbeitsauslastungsgruppen erstellt werden.

Wenn eine Arbeitsauslastungsgruppe mit min_percentage_resource größer als 0 (null) erstellt wird, wird die CREATE WORKLOAD GROUP-Anweisung in die Warteschlange eingereiht, bis genügend Ressourcen zum Erstellen der Arbeitsauslastungsgruppe vorhanden sind.

Effektive Werte

Die Parameter min_percentage_resource, cap_percentage_resource, request_min_resource_grant_percent und request_max_resource_grant_percent haben effektive Werte, die basierend auf dem aktuellen Servicelevel und der Konfiguration anderer Arbeitsauslastungsgruppen angepasst werden.

Der request_min_resource_grant_percent-Parameter hat einen effektiven Wert, da je nach Servicelevel minimale Ressourcen pro Abfrage benötigt werden. Beispielsweise sind auf dem niedrigsten Servicelevel (DW100c) mindestens 25 % der Ressourcen pro Anforderung erforderlich. Wenn die Workloadgruppe mit 3 % request_min_resource_grant_percent und request_max_resource_grant_percent konfiguriert ist, passen sich die effektiven Werte für beide Parameter auf 25 % an, wenn die Instanz gestartet wird. Wenn die Instanz zu DW1000c hochskaliert wird, sind die konfigurierten und effektiven Werte für beide Parameter 3 %, da 3 % der unterstützte Mindestwert für diesen Servicelevel ist. Wenn die Instanz höher als DW1000c skaliert wird, bleiben die konfigurierten und effektiven Werte für beide Parameter bei 3 %. In der folgenden Tabelle finden Sie weitere Informationen zu effektiven Werten bei verschiedenen Servicelevels.

Dienstebene Niedrigster effektiver Wert für REQUEST_MIN_RESOURCE_GRANT_PERCENT Maximale Anzahl gleichzeitiger Abfragen
DW100c 25 % 4
DW200c 12,5 % 8
DW300c 8 % 12
DW400c 6,25 % 16
DW500c 5 % 20
DW1000c 3 % 32
DW1500c 3 % 32
DW2000c 2 % 48
DW2500c 2 % 48
DW3000c 1,5 % 64
DW5000c 1,5 % 64
DW6000c 0,75 % 128
DW7500c 0,75 % 128
DW10000c 0,75 % 128
DW15000c 0,75 % 128
DW30000c 0,75 % 128

Der min_percentage_resource-Parameter muss größer oder gleich dem effektiven request_min_resource_grant_percent sein. Bei einer Workloadgruppe, deren Wert für min_percentage_resource kleiner als der effektive Wert von min_percentage_resource ist, wird der Wert zur Laufzeit auf 0 (null) angepasst. In diesem Fall sind die für min_percentage_resource konfigurierten Ressourcen für alle Arbeitsauslastungsgruppen freigegeben. Beispielsweise hätte die Workloadgruppe wgAdHoc mit einem Wert für min_percentage_resource von 10 % unter DW1000c einen effektiven Wert für min_percentage_resource von 10 % (3 % ist der Mindestwert bei DW1000c). Bei DW100c hätte wgAdhoc einen effektiven Wert für min_percentage_resource von 0 %. Die für wgAdhoc konfigurierten 10 % würden für alle Arbeitsauslastungsgruppen freigegeben werden.

Der Parameter cap_percentage_resource hat ebenfalls einen effektiven Wert. Wenn eine Arbeitsauslastungsgruppe wgAdhoc mit einem Wert von 100 % für cap_percentage_resource konfiguriert wird und eine andere Arbeitsauslastungsgruppe wgDashboards mit einem Wert von 25 % für min_percentage_resource, wird der effektive Wert von cap_percentage_resource für wgAdhoc 75 %.

Die Laufzeitwerte für Ihre Arbeitsauslastungsgruppe lassen sich am einfachsten erklären, indem Sie die Systemsicht sys.dm_workload_management_workload_groups_stats abfragen.

Berechtigungen

Erfordert die CONTROL DATABASE-Berechtigung

Weitere Informationen