Dela via


Konvertera resursklasser till arbetsbelastningsgrupper

Arbetsbelastningsgrupper tillhandahåller en mekanism för att isolera och begränsa systemresurser. Dessutom kan du med arbetsgrupper ange körningsregler för de begäranden som körs i dem. En regel för exekvering av frågetimeout tillåter att skenande frågor avbryts utan att användaren behöver ingripa. 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.

Anmärkning

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 tilldelning av samtidighetsplatser. För att bestämma värdet som ska anges för REQUEST_MIN_RESOURCE_GRANT_PERCENT, använd sys.dm_workload_management_workload_groups_stats-DMV:n. 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'

Anmärkning

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 övergripande 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_PERCENT kan du använda syntaxen CREATE WORKLOAD GROUP 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 hjälp av mediumrc som grund för ett exempel, sätter koden nedan MIN_PERCENTAGE_RESOURCE att dedikera 10% av systemresurserna till wgDataLoads och garanterar att en fråga kan köras alltid. Dessutom är CAP_PERCENTAGE_RESOURCE inställd på 40% och begränsar den här arbetsbelastningsgruppen till fyra samtidiga förfrågningar. 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 tillhandahåller ytterligare alternativ förutom inloggning, såsom: - etikett - session - tid. Exemplet nedan tilldelar frågor från inloggningen AdfLogin som också har ALTERNATIVET ETIKETT inställt till arbetsbelastningsgruppen 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