Delen via


Resourceklassen converteren naar workloadgroepen

Workloadgroepen bieden een mechanisme voor het isoleren en bevatten van systeemresources. Bovendien kunt u met workloadgroepen uitvoeringsregels instellen voor de aanvragen die erin worden uitgevoerd. A query timeout execution rule allows runaway queries to be canceled without user intervention. In dit artikel wordt uitgelegd hoe u een bestaande resourceklasse gebruikt en een workloadgroep maakt met een vergelijkbare configuratie. Daarnaast wordt er een optionele time-outregel voor query's toegevoegd.

Opmerking

Zie het gedeelte Resourceklassetoewijzingen combineren met classificaties in het conceptdocument workloadclassificatie voor hulp bij het gebruik van workloadgroepen en resourceklassen tegelijk.

Informatie over de bestaande configuratie van resourceklassen

Voor workloadgroepen is een parameter REQUEST_MIN_RESOURCE_GRANT_PERCENT vereist die het percentage van de totale systeemresources aangeeft dat per aanvraag is toegewezen. Resourcetoewijzing wordt uitgevoerd voor resourceklassen door concurrentieslots toe te wijzen. To determine the value to specify for REQUEST_MIN_RESOURCE_GRANT_PERCENT, use the sys.dm_workload_management_workload_groups_stats DMV. De onderstaande query retourneert bijvoorbeeld een waarde die kan worden gebruikt voor de REQUEST_MIN_RESOURCE_GRANT_PERCENT parameter om een workloadgroep te maken die vergelijkbaar is met staticrc40.

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

Opmerking

Workloadgroepen werken op basis van het percentage van de totale systeemresources.

Omdat workloadgroepen werken op basis van het percentage van algemene systeemresources, terwijl u omhoog en omlaag schaalt, verandert het percentage resources dat is toegewezen aan statische resourceklassen ten opzichte van de algehele systeemresources. For example, staticrc40 at DW1000c allocates 19.2% of the overall system resources. At DW2000c, 9.6% are allocated. Dit model is vergelijkbaar als u omhoog wilt schalen voor gelijktijdigheid versus het toewijzen van meer resources per aanvraag.

Create Workload Group

Met de bekende REQUEST_MIN_RESOURCE_GRANT_PERCENTkunt u de syntaxis CREATE WORKLOAD GROUP gebruiken om de workloadgroep te maken. U kunt desgewenst een waarde MIN_PERCENTAGE_RESOURCE opgeven die groter is dan nul om resources voor de workloadgroep te isoleren. U kunt desgewenst minder dan 100 opgeven CAP_PERCENTAGE_RESOURCE om de hoeveelheid resources te beperken die de workloadgroep kan gebruiken.

Met mediumrc als basis voor een voorbeeld stelt de onderstaande code MIN_PERCENTAGE_RESOURCE in om 10% van de systeembronnen aan wgDataLoads toe te wijzen en wordt gegarandeerd dat één query altijd kan worden uitgevoerd. Daarnaast wordt CAP_PERCENTAGE_RESOURCE ingesteld op 40% en beperkt deze workloadgroep tot vier gelijktijdige aanvragen. Als u de QUERY_EXECUTION_TIMEOUT_SEC parameter instelt op 3600, wordt elke query die langer dan 1 uur wordt uitgevoerd, automatisch geannuleerd.

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

De classificatie maken

Voorheen werd de toewijzing van query's aan resourceklassen uitgevoerd met sp_addrolemember. Gebruik de syntaxis CREATE WORKLOAD CLASSIFIER om dezelfde functionaliteit te bereiken en aanvragen toe te wijzen aan workloadgroepen. Met behulp van sp_addrolemember kunt u alleen resources toewijzen aan een aanvraag op basis van een aanmelding. Een classifier biedt naast aanmelding extra opties, zoals: - label - sessie - tijd. In het onderstaande voorbeeld worden query's van de AdfLogin aanmelding, waarvoor de OPTION LABEL is ingesteld op factloads, toegewezen aan de hierboven aangemaakte workloadgroep wgDataLoads.

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

Testen met een voorbeeldquery

Hieronder ziet u een voorbeeldquery en een DMV-query om ervoor te zorgen dat de workloadgroep en classificatie correct zijn geconfigureerd.

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

Volgende stappen