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. Eine Abfragetimeoutausführungsregel ermöglicht das Abbrechen von Runaway-Abfragen ohne Benutzereingriff. 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 die Zuweisung von Parallelitätsplätzen. 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 Grundlage für ein Beispiel legt der folgende Code die MIN_PERCENTAGE_RESOURCE 10% der Systemressourcen fest wgDataLoads und garantiert, dass eine Abfrage immer ausgeführt werden kann. CAP_PERCENTAGE_RESOURCE Darüber hinaus wird diese Workloadgruppe auf 40% festgelegt und 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 zusätzliche Optionen, z. B.: - Bezeichnung - Sitzung - Zeit Im folgenden Beispiel werden Abfragen aus der AdfLogin Anmeldung zugewiesen, die auch die OPTION LABEL auf factloads die oben erstellte Workloadgruppe wgDataLoads festgelegt haben.

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