Freigeben über


Konvertieren von Ressourcenklassen in Workloadgruppen

Workloadgruppen bieten einen Mechanismus zur Abgrenzung und Begrenzung von Systemressourcen. Darüber hinaus können Workloadgruppen Ausführungsregeln für die darin ausgeführten Anforderungen festlegen. Mit einer Ausführungsregel für Abfragetimeout können Endlosabfragen ohne Benutzereingriff abgebrochen werden. In diesem Artikel wird erläutert, wie Sie eine vorhandene Ressourcenklasse verwenden und eine Workloadgruppe mit einer ähnlichen Konfiguration erstellen. Darüber hinaus wird eine optionale Abfrage-Timeout-Regel hinzugefügt.

Hinweis

Anleitungen zur gleichzeitigen Verwendung von Workloadgruppen und Ressourcenklassen finden Sie im Abschnitt „Mischen von Ressourcenklassenzuordnungen mit Klassifikatoren“ im Dokument „Workloadklassifizierung“.

Grundlegendes zur vorhandenen Ressourcenklassenkonfiguration

Workloadgruppen erfordern einen Parameter, der den REQUEST_MIN_RESOURCE_GRANT_PERCENT Prozentsatz der gesamt zugeordneten Systemressourcen pro Anforderung angibt. Die Ressourcenzuordnung erfolgt für Ressourcenklassen durch Zuordnen von Parallelitätsslots. Verwenden Sie die sys.dm_workload_management_workload_groups_stats DMV, um den anzugebenen Wert für REQUEST_MIN_RESOURCE_GRANT_PERCENT zu ermitteln. Die folgende Abfrage gibt z. B. einen Wert zurück, der für den REQUEST_MIN_RESOURCE_GRANT_PERCENT Parameter verwendet werden kann, um eine Workloadgruppe 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

Workloadgruppen arbeiten basierend auf dem Prozentsatz der gesamten Systemressourcen.

Da Workloadgruppen basierend auf dem Prozentsatz der Gesamtsystemressourcen funktionieren, während Sie die Skalierung nach oben und unten ausführen, ändert sich der Prozentsatz der Ressourcen, die statischen Ressourcenklassen zugeordnet sind, relativ zu den allgemeinen Systemressourcen. So weist staticrc40 bei DW1000c beispielsweise 19,2% der Gesamtsystemressourcen zu. Bei DW2000c werden 9,6% zugeteilt. Dieses Modell ist dasselbe, wenn Sie für Parallelität skalieren möchten, anstatt mehr Ressourcen pro Anforderung zuzuordnen.

Workloadgruppe erstellen

Mit dem bekannten REQUEST_MIN_RESOURCE_GRANT_PERCENT, können Sie die CREATE WORKLOAD GROUP-Syntax verwenden, um die Workloadgruppe zu erstellen. Sie können optional ein MIN_PERCENTAGE_RESOURCE Wert angeben, der größer als 0 ist, um Ressourcen für die Workloadgruppe zu isolieren. Darüber hinaus haben Sie die Möglichkeit, weniger als 100 CAP_PERCENTAGE_RESOURCE anzugeben, um die Menge der Ressourcen zu begrenzen, die die Workload-Gruppe verbrauchen kann.

Unter Verwendung von „mediumrc“ als Basis für ein Beispiel wird im untenstehenden Code MIN_PERCENTAGE_RESOURCE so festgelegt, dass 10 % 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 QUERY_EXECUTION_TIMEOUT_SEC Parameters auf 3600 wird jede Abfrage, die länger als 1 Stunde ausgeführt wird, 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 wurde die Zuordnung von Abfragen zu Ressourcenklassen mit sp_addrolemember durchgeführt. Verwenden Sie die CREATE WORKLOAD CLASSIFIER-Syntax, um dieselbe Funktionalität zu erreichen und Anforderungen Workload-Gruppen zuzuordnen. Wenn Sie sp_addrolemember verwenden, können Sie ressourcen nur einer Anforderung 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 finden Sie eine Beispielabfrage und eine DMV-Abfrage, um sicherzustellen, dass die Workloadgruppe und der Klassifizierer ordnungsgemäß 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