Konvertieren von Ressourcenklassen in Arbeitsauslastungsgruppen

Arbeitsauslastungsgruppen bieten einen Mechanismus zum Isolieren und Kapseln von Systemressourcen. Außerdem können Sie mit Arbeitsauslastungsgruppen Ausführungsregeln für darin ausgeführte Anforderungen festlegen. Mit einer Ausführungsregel für Abfragetimeout können Endlosabfragen ohne Benutzereingriff abgebrochen werden. In diesem Artikel wird erläutert, wie anhand einer vorhandenen Ressourcenklasse eine Arbeitsauslastungsgruppe mit einer ähnlichen Konfiguration erstellt werden kann. Außerdem wird eine optionale Regel für das Abfragetimeout hinzugefügt.

Hinweis

Der Abschnitt Kombinieren von Ressourcenklassenzuweisungen mit Klassifizierungen im Konzeptdokument Klassifizierung der Arbeitsauslastung enthält eine Anleitung zum gleichzeitigen Verwenden von Arbeitsauslastungsgruppen und Ressourcenklassen.

Grundlegendes zur vorhandenen Ressourcenklassenkonfiguration

Für Arbeitsauslastungsgruppen ist ein Parameter namens REQUEST_MIN_RESOURCE_GRANT_PERCENT erforderlich, der den Prozentsatz der Gesamtsystemressourcen angibt, die pro Anforderung zugeordnet werden. Die Ressourcenzuordnung erfolgt für Ressourcenklassen durch Zuordnen von Parallelitätsslots. Um den für REQUEST_MIN_RESOURCE_GRANT_PERCENT anzugebenden Wert zu ermitteln, verwenden Sie die DMV sys.dm_workload_management_workload_groups_stats. Beispielsweise gibt die folgende Abfrage einen Wert zurück, der für den REQUEST_MIN_RESOURCE_GRANT_PERCENT-Parameter verwendet werden kann, um eine Workloadgruppe ähnlich wie „staticrc40“ zu erstellen.

SELECT Request_min_resource_grant_percent = Effective_request_min_resource_grant_percent
  FROM sys.dm_workload_management_workload_groups_stats
  WHERE name = 'staticrc40'

Hinweis

Arbeitsauslastungsgruppen werden basierend auf dem Prozentsatz der Gesamtsystemressourcen ausgeführt.

Da Arbeitsauslastungsgruppen basierend auf dem Prozentsatz der Gesamtsystemressourcen ausgeführt werden, ändert sich beim Hoch- und Herunterskalieren der Prozentsatz der Ressourcen, die statischen Ressourcenklassen zugeordnet sind, im Verhältnis zu den Gesamtsystemressourcen. Beispielsweise werden mit „staticrc40“ bei DW1000c 19,2 % der Gesamtsystemressourcen zugewiesen. Bei DW2000c werden 9,6 % zugewiesen. Dieses Modell funktioniert ähnlich, wenn Sie für Parallelität hochskalieren möchten, anstatt mehr Ressourcen pro Anforderung zuzuweisen.

Erstellen einer Arbeitsauslastungsgruppe

Wenn der Parameter REQUEST_MIN_RESOURCE_GRANT_PERCENT bekannt ist, können Sie die CREATE WORKLOAD GROUP-Syntax zum Erstellen der Arbeitsauslastungsgruppe verwenden. Sie können optional einen Wert größer als 0 (null) für MIN_PERCENTAGE_RESOURCE angeben, um Ressourcen für die Arbeitsauslastungsgruppe zu isolieren. Außerdem können Sie optional einen Wert kleiner als 100 für CAP_PERCENTAGE_RESOURCE angeben, um die Menge an Ressourcen einzuschränken, die von der Arbeitsauslastungsgruppe genutzt werden kann.

Unter Verwendung von mediumrc als Basis für ein Beispiel wird im untenstehenden Code MIN_PERCENTAGE_RESOURCE so festgelegt, dass zehn Prozent der Systemressourcen für wgDataLoads dediziert sind. Außerdem wird sichergestellt, dass eine Abfrage jederzeit ausgeführt werden kann. Außerdem wird CAP_PERCENTAGE_RESOURCE auf 40 Prozent festgelegt und diese Arbeitsauslastungsgruppe auf vier gleichzeitige Anforderungen beschränkt. Durch Festlegen des Parameters QUERY_EXECUTION_TIMEOUT_SEC auf 3600 werden alle Abfragen, die länger als eine Stunde ausgeführt werden, automatisch abgebrochen.

CREATE WORKLOAD GROUP wgDataLoads WITH  
( REQUEST_MIN_RESOURCE_GRANT_PERCENT = 10
 ,MIN_PERCENTAGE_RESOURCE = 10
 ,CAP_PERCENTAGE_RESOURCE = 40
 ,QUERY_EXECUTION_TIMEOUT_SEC = 3600)

Erstellen des Klassifizierers

Zuvor erfolgte die Zuordnung von Abfragen zu Ressourcenklassen über sp_addrolemember. Um dieselbe Funktionalität zu erreichen und Arbeitsauslastungsgruppen Anforderungen zuzuordnen, verwenden Sie die Syntax CREATE WORKLOAD CLASSIFIER. Mit „sp_addrolemember“ konnten Sie einer Anforderung nur Ressourcen basierend auf einer Anmeldung zuordnen. Ein Klassifizierer bietet neben der Anmeldung noch weitere Optionen. Dies sind: - label - session - time. Im folgenden Beispiel werden Abfragen von der Anmeldung AdfLogin zugewiesen, bei denen außerdem die Optionsbezeichnung auf factloads für die oben erstellte Workloadgruppe wgDataLoads festgelegt ist.

CREATE WORKLOAD CLASSIFIER wcDataLoads WITH  
( WORKLOAD_GROUP = 'wgDataLoads'
 ,MEMBERNAME = 'AdfLogin'
 ,WLM_LABEL = 'factloads')

Testen mit einer Beispielabfrage

Nachfolgend ist eine Beispielabfrage und eine DMV-Abfrage angegeben, mit denen sichergestellt wird, dass die Arbeitsauslastungsgruppe und der Klassifizierer richtig konfiguriert sind.

SELECT SUSER_SNAME() --should be 'AdfLogin'

--change to a valid table AdfLogin has access to
SELECT TOP 10 *
  FROM nation
  OPTION (label='factloads')

SELECT request_id, [label], classifier_name, group_name, command
  FROM sys.dm_pdw_exec_requests
  WHERE [label] = 'factloads'
  ORDER BY submit_time DESC

Nächste Schritte