Dela via


Konvertera resursklasser till arbetsbelastningsgrupper

Arbetsbelastningsgrupper tillhandahåller en mekanism för att isolera och innehålla systemresurser. Dessutom kan du med arbetsbelastningsgrupper ange körningsregler för de begäranden som körs i dem. En körningsregel för frågetimeout tillåter att skenande frågor avbryts utan användarintervention. Den här artikeln beskriver hur du tar en befintlig resursklass och skapar en arbetsbelastningsgrupp med en liknande konfiguration. Dessutom läggs en valfri tidsgränsregel för frågor till.

Kommentar

Se avsnittet Blanda resursklasstilldelningar med klassificerare i konceptdokumentet Arbetsbelastningsklassificering för vägledning om hur du använder arbetsbelastningsgrupper och resursklasser samtidigt.

Förstå den befintliga resursklasskonfigurationen

Arbetsbelastningsgrupper kräver en parameter med namnet REQUEST_MIN_RESOURCE_GRANT_PERCENT som anger procentandelen av de totala systemresurser som allokerats per begäran. Resursallokering görs för resursklasser genom allokering av samtidighetsfack. Om du vill fastställa värdet som ska anges för REQUEST_MIN_RESOURCE_GRANT_PERCENTanvänder du sys.dm_workload_management_workload_groups_stats DMV. Frågan nedan returnerar till exempel ett värde som kan användas för parametern REQUEST_MIN_RESOURCE_GRANT_PERCENT för att skapa en arbetsbelastningsgrupp som liknar staticrc40.

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

Kommentar

Arbetsbelastningsgrupper fungerar baserat på procentandelen av de totala systemresurserna.

Eftersom arbetsbelastningsgrupper fungerar baserat på procentandelen av de totala systemresurserna ändras procentandelen resurser som allokerats till statiska resursklasser i förhållande till de övergripande systemresurserna när du skalar upp och ned. Till exempel allokerar staticrc40 på DW1000c 19,2 % av de totala systemresurserna. Vid DW2000c allokeras 9,6 % . Den här modellen liknar den om du vill skala upp för samtidighet jämfört med att allokera fler resurser per begäran.

Skapa arbetsbelastningsgrupp

Med den kända REQUEST_MIN_RESOURCE_GRANT_PERCENTkan du använda syntaxen CREATE WORKLOAD GROUP (SKAPA ARBETSBELASTNINGSGRUPP ) för att skapa arbetsbelastningsgruppen. Du kan också ange en MIN_PERCENTAGE_RESOURCE som är större än noll för att isolera resurser för arbetsbelastningsgruppen. Du kan också ange CAP_PERCENTAGE_RESOURCE mindre än 100 för att begränsa mängden resurser som arbetsbelastningsgruppen kan använda.

Med mediumrc som grund för ett exempel anger MIN_PERCENTAGE_RESOURCE koden nedan att dedikera 10 % av systemresurserna till wgDataLoads och garanterar att en fråga kan köras hela tiden. CAP_PERCENTAGE_RESOURCE Dessutom är inställt på 40 % och begränsar den här arbetsbelastningsgruppen till fyra samtidiga begäranden. Genom att ange parametern QUERY_EXECUTION_TIMEOUT_SEC till 3600 avbryts alla frågor som körs i mer än 1 timme automatiskt.

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

Skapa klassificeraren

Tidigare gjordes mappningen av frågor till resursklasser med sp_addrolemember. Använd syntaxen CREATE WORKLOAD CLASSIFIER (SKAPA ARBETSBELASTNINGSKLASSIFICERARE ) för att uppnå samma funktioner och mappa begäranden till arbetsbelastningsgrupper. Med hjälp av sp_addrolemember kunde du bara mappa resurser till en begäran baserat på en inloggning. En klassificerare innehåller ytterligare alternativ förutom inloggning, till factloads exempel: - etikett - session - tid Exemplet nedan tilldelar frågor från inloggningen AdfLogin som också har ALTERNATIVET ETIKETT inställt på den arbetsbelastningsgrupp wgDataLoads som skapades ovan.

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

Testa med en exempelfråga

Nedan visas en exempelfråga och en DMV-fråga för att säkerställa att arbetsbelastningsgruppen och klassificeraren är korrekt konfigurerade.

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ästa steg