Share via


Resourceklassen omzetten in 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. Met een querytime-outuitvoeringsregel kunnen runaway-query's worden geannuleerd zonder tussenkomst van de gebruiker. 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.

Notitie

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 gelijktijdigheidssites toe te wijzen. Als u de waarde wilt bepalen waarop u wilt opgeven REQUEST_MIN_RESOURCE_GRANT_PERCENT, gebruikt u de 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'

Notitie

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. Staticrc40 bij DW1000c wijst bijvoorbeeld 19,2% van de totale systeembronnen toe. Bij DW2000c wordt 9,6% toegewezen. Dit model is vergelijkbaar als u omhoog wilt schalen voor gelijktijdigheid versus het toewijzen van meer resources per aanvraag.

Workloadgroep maken

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 behulp van mediumrc als basis voor een voorbeeld wordt met de onderstaande code ingesteld MIN_PERCENTAGE_RESOURCE dat 10% van de systeembronnen wgDataLoads wordt toegewezen en wordt gegarandeerd dat één query alle keren kan worden uitgevoerd. Daarnaast CAP_PERCENTAGE_RESOURCE is deze ingesteld op 40% en wordt deze workloadgroep beperkt 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 classificatie biedt naast aanmelding extra opties, zoals: - label - sessie - tijd dat in het onderstaande voorbeeld query's worden toegewezen vanuit de AdfLogin aanmelding waarvoor ook het OPTION LABEL is ingesteld factloads op de hierboven gemaakte 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