Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Välj en produkt
På följande rad väljer du det produktnamn som du är intresserad av och endast den produktinformationen visas.
* SQL Server *
SQL Server och SQL Managed Instance
Ändrar en befintlig konfiguration av resursguvernörens arbetsbelastningsgrupp och tilldelar den eventuellt till en annan resursguvernörsresurspool.
Not
Om du vill ändra konfigurationen av resursguvernören i Azure SQL Managed Instance måste du vara i kontexten för den master databasen på den primära repliken.
Transact-SQL syntaxkonventioner.
Syntax
ALTER WORKLOAD GROUP { group_name | [ default ] }
[ WITH
( [ IMPORTANCE = { LOW | MEDIUM | HIGH } ]
[ [ , ] REQUEST_MAX_MEMORY_GRANT_PERCENT = value ]
[ [ , ] REQUEST_MAX_CPU_TIME_SEC = value ]
[ [ , ] REQUEST_MEMORY_GRANT_TIMEOUT_SEC = value ]
[ [ , ] MAX_DOP = value ]
[ [ , ] GROUP_MAX_REQUESTS = value ]
[ [ , ] GROUP_MAX_TEMPDB_DATA_MB = value ]
[ [ , ] GROUP_MAX_TEMPDB_DATA_PERCENT = value ] )
]
[ USING { pool_name | [default] } ]
[ ; ]
Argument
group_name | [standard]
Namnet på en befintlig användardefinierad arbetsbelastningsgrupp eller den inbyggda resursguvernören default arbetsbelastningsgrupp.
default måste vara inom hakparenteser ([]) eller citattecken ("") när de används med ALTER WORKLOAD GROUP för att undvika en konflikt med DEFAULT, vilket är ett systemreserverat ord. Mer information finns i Databasidentifierare.
Inbyggda resurspooler och arbetsbelastningsgrupper använder alla gemener, till exempel default. Använd gemener default på servrar som använder en skiftlägeskänslig sortering. Servrar med skiftlägesokänslig sortering behandlar default, Defaultoch DEFAULT som samma värde.
IMPORTANCE = { LOW | MEDIUM | HÖG }
Anger den relativa betydelsen av en begäran i arbetsbelastningsgruppen. Standardvärdet är MEDIUM.
IMPORTANCE är lokal för resurspoolen som innehåller arbetsbelastningsgruppen. Arbetsbelastningsgrupper av olika betydelse i samma resurspool påverkar varandra, men påverkar inte arbetsbelastningsgrupper i andra resurspooler.
REQUEST_MAX_MEMORY_GRANT_PERCENT = värde
Anger den maximala mängden minne för frågearbetsytan som en enskild begäran kan ta från poolen.
värdet är en procentandel av resurspoolens storlek som definieras av MAX_MEMORY_PERCENT. Standardvärdet är 25.
I SQL Server 2017 (14.x) och äldre är värde ett heltal och det tillåtna intervallet är mellan 1 och 100.
Från och med SQL Server 2019 (15.x) kan värdet vara bråktal med hjälp av float datatyp. Det tillåtna intervallet är mellan 0 och 100.
Viktig
Det angivna beloppet avser endast frågearbetsytans minne som hämtas via frågeminnesbidrag.
Vi rekommenderar inte att du anger värde för stort (t.ex. större än 70) eftersom servern kanske inte kan avsätta tillräckligt med ledigt minne för andra samtidiga frågor. Detta kan leda till en tidsgräns för minnesstipendium fel 8645.
Om du anger värdet till 0 eller ett litet värde kan det förhindra att frågor med operatorer som kräver arbetsyteminne, till exempel sort och hash, körs i användardefinierade arbetsbelastningsgrupper. Om frågeminneskraven överskrider den gräns som definieras av den här parametern inträffar följande beteende:
- För användardefinierade arbetsbelastningsgrupper försöker servern minska graden av parallellitet (DOP) för begäran (frågan) tills minneskravet ligger under gränsen eller tills DOP är lika med 1. Om frågeminneskravet fortfarande är större än gränsen uppstår fel 8657 och frågan misslyckas.
- För arbetsbelastningsgrupperna
internalochdefaulttillåter servern att frågan hämtar det minne som krävs.
I båda fallen kan fel 8645 inträffa om servern inte har tillräckligt med fysiskt minne.
REQUEST_MAX_CPU_TIME_SEC = värde
Anger den maximala cpu-tid i sekunder som en batchbegäran kan använda. värdet måste vara 0 eller ett positivt heltal. Standardinställningen för värde är 0, vilket innebär obegränsad.
När den maximala CPU-tiden överskrids genereras den cpu_threshold_exceeded utökade händelsen och en spårningshändelse. Mer information finns i CPU-tröskelvärdet överskred händelseklassen.
När den maximala CPU-tiden överskrids i Azure SQL Managed Instance avbryter resursguvernören begäran med fel 10961.
I SQL Server avbryter inte resursguvernören begäran som standard. Från och med SQL Server 2016 (13.x) SP2 och SQL Server 2017 (14.x) CU3 avbryter resursguvernören en begäran med fel 10961 när spårningsflagga 2422 är aktiverad och den maximala CPU-tiden överskrids.
REQUEST_MEMORY_GRANT_TIMEOUT_SEC = värde
Anger den maximala tid i sekunder som en fråga kan vänta på att ett minnesbidrag från frågearbetsytans minne ska bli tillgängligt. värdet måste vara 0 eller ett positivt heltal. Standardinställningen för -värdet, 0, använder en intern beräkning baserat på frågekostnaden för att fastställa den maximala tiden.
En fråga misslyckas inte alltid när tidsgränsen för minnesstipendium nås. En fråga misslyckas bara om det finns för många samtidiga frågor som körs. Annars kanske frågan bara får minsta möjliga minnesbidrag, vilket resulterar i lägre frågeprestanda.
MAX_DOP = värde
Anger den maximala graden av parallellitet (MAXDOP) för parallell frågekörning. Det tillåtna intervallet för värde är mellan 0 och 64. Standardinställningen för -värdet, 0, använder den globala inställningen.
Mer information finns i MAXDOP-.
GROUP_MAX_REQUESTS = värde
Anger det maximala antalet samtidiga begäranden som tillåts köras i arbetsbelastningsgruppen. värdet måste vara 0 eller ett positivt heltal. Standardinställningen för värde är 0 och tillåter obegränsade begäranden. När maximalt antal samtidiga begäranden nås kan en session i gruppen skapas, men placeras i vänteläge tills antalet samtidiga begäranden sjunker under det angivna värdet.
GROUP_MAX_TEMPDB_DATA_MB = värde
Anger den maximala mängden utrymme som en arbetsbelastningsgrupp kan använda i datafilerna tempdb i megabyte.
värdet måste vara 0 eller ett positivt tal. Bråkvärden tillåts.
När värdet är 0 tempdb tillåts inte utrymmesallokeringar efter sessioner i arbetsbelastningsgruppen. När ett värde inte har angetts begränsar tempdb resursguvernören inte utrymmesförbrukningen för arbetsbelastningsgruppen.
Gränsen är för det totala utrymme som förbrukas tempdb av alla sessioner i en arbetsbelastningsgrupp.
När en begäran som körs i en arbetsbelastningsgrupp försöker öka tempdb datautrymmets förbrukning av arbetsbelastningsgruppen över gränsen som anges av GROUP_MAX_TEMPDB_DATA_MB, avbryter resursguvernören begäran med fel 1138. Mer information finns i Tempdb-resursstyrning för utrymme.
GROUP_MAX_TEMPDB_DATA_PERCENT = värde
Anger den maximala mängden utrymme som en arbetsbelastningsgrupp kan använda i datafilerna tempdb , i procent av den maximala tempdb storleken. Definitionen av den maximala tempdb storleken finns i Konfiguration av procentgräns.
värdet måste ligga i intervallet från 0 till 100. Bråkvärden tillåts.
När värdet är 0 tempdb tillåts inte utrymmesallokeringar efter sessioner i arbetsbelastningsgruppen. När ett värde inte har angetts begränsar tempdb resursguvernören inte utrymmesförbrukningen för arbetsbelastningsgruppen. När GROUP_MAX_TEMPDB_DATA_MB har angetts, eller när tempdb den maximala storleken inte har definierats, GROUP_MAX_TEMPDB_DATA_PERCENT har ingen effekt.
Gränsen är för det totala utrymme som förbrukas tempdb av alla sessioner i en arbetsbelastningsgrupp.
När en begäran som körs i en arbetsbelastningsgrupp försöker öka tempdb datautrymmets förbrukning av arbetsbelastningsgruppen över gränsen som anges av GROUP_MAX_TEMPDB_DATA_PERCENT, avbryter resursguvernören begäran med fel 1138. Mer information finns i Tempdb-resursstyrning för utrymme.
USING { pool_name | [ standard ] }
Associerar arbetsbelastningsgruppen med den användardefinierade resurspoolen som identifieras av pool_nameeller med default resurspoolen. Om pool_name inte anges, eller om argumentet USING inte har angetts, associeras arbetsbelastningsgruppen med den inbyggda default poolen.
default är ett reserverat ord och när det anges i USING, måste omges av hakparenteser ([]) eller citattecken ("").
Inbyggda resurspooler och arbetsbelastningsgrupper använder alla gemener, till exempel default. Använd gemener default på servrar som använder en skiftlägeskänslig sortering. Servrar med skiftlägesokänslig sortering behandlar default, Defaultoch DEFAULT som samma värde.
Anmärkningar
ALTER WORKLOAD GROUP tillåts i arbetsbelastningsgruppen default, men inte i gruppen internal.
Ändringar i konfigurationen av arbetsbelastningsgruppen börjar inte gälla förrän ALTER RESOURCE GOVERNOR RECONFIGURE har körts.
Mer information finns i resource governor and Resource governor workload group.
MAXDOP
För en viss fråga bestäms effektiva MAXDOP på följande sätt:
-
MAXDOPsom ett frågetips respekteras så länge det inte överskrider arbetsbelastningsgruppensMAX_DOPinställning. -
MAXDOPsom ett frågetips åsidosätter alltidmax degree of parallelismserverkonfiguration. Mer information finns i Server-konfiguration: maximal grad av parallellitet. - Arbetsbelastningsgruppen
MAX_DOPåsidosättermax degree of parallelismserverkonfiguration ochMAXDOPdatabasomfattande konfiguration.
Gränsen för MAXDOP anges per aktivitet. Det är inte en per begäran eller per frågegräns. Under en körning av en parallell fråga kan en enskild begäran skapa flera uppgifter som har tilldelats till en schemaläggaren. Mer information finns i tråd- och aktivitetsarkitekturguiden.
När en fråga markeras som seriell vid kompileringstid (MAXDOP = 1) kan den inte köras med parallellitet vid körning oavsett arbetsbelastningsgrupp eller serverkonfigurationsinställning. När MAXDOP har bestämts för en fråga kan den bara sänkas på grund av minnesbelastning. Omkonfiguration av arbetsbelastningsgrupp påverkar inte frågor som väntar i kön för minnesbeviljande.
Cachelagrade planer
När du ändrar en plan som påverkar inställningen, till exempel MAX_DOP, börjar den nya inställningen gälla i tidigare cachelagrade planer först efter körningen av DBCC FREEPROCCACHE (<pool_name>), där <pool_name> är namnet på en resurspool som används av den aktuella arbetsbelastningsgruppen.
- Om du ändrar
MAX_DOPtill 1 krävs inte körning avDBCC FREEPROCCACHEeftersom parallella planer kan köras i serieläge. En sådan plan kan dock vara mindre effektiv än en plan som sammanställts som en serieplan. - Om du ändrar
MAX_DOPfrån 1 till 0 eller ett värde som är större än 1 krävs inte körning avDBCC FREEPROCCACHE. Serieplaner kan dock inte köras parallellt, så om du rensar respektive cache kan nya planer eventuellt kompileras med parallellitet.
Varning
Att rensa cachelagrade planer från en resurspool som är associerad med mer än en arbetsbelastningsgrupp påverkar alla arbetsbelastningsgrupper med hjälp av den användardefinierade resurspoolen som identifieras av <pool_name>.
Skapa index
Av prestandaskäl kan indexskapande använda mer minnesarbetsyta än vad som ursprungligen beviljades. Resursguvernören stöder den här särskilda hanteringen. Det första beviljandet och eventuella ytterligare minnesbidrag begränsas dock av arbetsbelastningsgruppen och inställningarna för resurspoolen.
Det minne som förbrukas för att skapa ett icke-berättigat index i en partitionerad tabell är proportionellt mot antalet berörda partitioner. Om det totala antalet minne som krävs överskrider gränsen per fråga som tillämpas av inställningen för REQUEST_MAX_MEMORY_GRANT_PERCENT arbetsbelastningsgrupp kan indexskapandet misslyckas. Eftersom den default arbetsbelastningsgruppen tillåter att en fråga överskrider gränsen per fråga med det minsta minne som krävs för att starta för bakåtkompatibilitet, kanske du kan skapa samma index med arbetsbelastningsgruppen default om default resurspoolen har tillräckligt med totalt minne.
Behörigheter
Kräver behörigheten CONTROL SERVER.
Exempel
I följande exempel visas hur du ändrar vikten av begäranden i standardgruppen från MEDIUM till LOW.
ALTER WORKLOAD GROUP [default]
WITH (IMPORTANCE = LOW);
ALTER RESOURCE GOVERNOR RECONFIGURE;
I följande exempel visas hur du flyttar en arbetsbelastningsgrupp från poolen som den för närvarande är i default poolen.
ALTER WORKLOAD GROUP adHoc
USING [default];
ALTER RESOURCE GOVERNOR RECONFIGURE;
Relaterat innehåll
- Resursguvernör
- resursguvernörens arbetsbelastningsgrupp
- Skapa en arbetsbelastningsgrupp
- Flytta en arbetsbelastningsgrupp
- SKAPA ARBETSBELASTNINGSGRUPP (Transact-SQL)
- SLÄPP ARBETSBELASTNINGSGRUPP (Transact-SQL)
- SKAPA RESURSPOOL (Transact-SQL)
- ÄNDRA RESURSPOOL (Transact-SQL)
- TA BORT RESURSPOOL (Transact-SQL)
- ÄNDRA RESURSGUVERNÖR (Transact-SQL)
- sys.resource_governor_workload_groups
- sys.dm_resource_governor_workload_groups
* SQL Managed Instance *
SQL Server och SQL Managed Instance
Ändrar en befintlig konfiguration av resursguvernörens arbetsbelastningsgrupp och tilldelar den eventuellt till en annan resursguvernörsresurspool.
Not
Om du vill ändra konfigurationen av resursguvernören i Azure SQL Managed Instance måste du vara i kontexten för den master databasen på den primära repliken.
Transact-SQL syntaxkonventioner.
Syntax
ALTER WORKLOAD GROUP { group_name | [ default ] }
[ WITH
( [ IMPORTANCE = { LOW | MEDIUM | HIGH } ]
[ [ , ] REQUEST_MAX_MEMORY_GRANT_PERCENT = value ]
[ [ , ] REQUEST_MAX_CPU_TIME_SEC = value ]
[ [ , ] REQUEST_MEMORY_GRANT_TIMEOUT_SEC = value ]
[ [ , ] MAX_DOP = value ]
[ [ , ] GROUP_MAX_REQUESTS = value ]
[ [ , ] GROUP_MAX_TEMPDB_DATA_MB = value ]
[ [ , ] GROUP_MAX_TEMPDB_DATA_PERCENT = value ] )
]
[ USING { pool_name | [default] } ]
[ ; ]
Argument
group_name | [standard]
Namnet på en befintlig användardefinierad arbetsbelastningsgrupp eller den inbyggda resursguvernören default arbetsbelastningsgrupp.
default måste vara inom hakparenteser ([]) eller citattecken ("") när de används med ALTER WORKLOAD GROUP för att undvika en konflikt med DEFAULT, vilket är ett systemreserverat ord. Mer information finns i Databasidentifierare.
Inbyggda resurspooler och arbetsbelastningsgrupper använder alla gemener, till exempel default. Använd gemener default på servrar som använder en skiftlägeskänslig sortering. Servrar med skiftlägesokänslig sortering behandlar default, Defaultoch DEFAULT som samma värde.
IMPORTANCE = { LOW | MEDIUM | HÖG }
Anger den relativa betydelsen av en begäran i arbetsbelastningsgruppen. Standardvärdet är MEDIUM.
IMPORTANCE är lokal för resurspoolen som innehåller arbetsbelastningsgruppen. Arbetsbelastningsgrupper av olika betydelse i samma resurspool påverkar varandra, men påverkar inte arbetsbelastningsgrupper i andra resurspooler.
REQUEST_MAX_MEMORY_GRANT_PERCENT = värde
Anger den maximala mängden minne för frågearbetsytan som en enskild begäran kan ta från poolen.
värdet är en procentandel av resurspoolens storlek som definieras av MAX_MEMORY_PERCENT. Standardvärdet är 25.
I SQL Server 2017 (14.x) och äldre är värde ett heltal och det tillåtna intervallet är mellan 1 och 100.
Från och med SQL Server 2019 (15.x) kan värdet vara bråktal med hjälp av float datatyp. Det tillåtna intervallet är mellan 0 och 100.
Viktig
Det angivna beloppet avser endast frågearbetsytans minne som hämtas via frågeminnesbidrag.
Vi rekommenderar inte att du anger värde för stort (t.ex. större än 70) eftersom servern kanske inte kan avsätta tillräckligt med ledigt minne för andra samtidiga frågor. Detta kan leda till en tidsgräns för minnesstipendium fel 8645.
Om du anger värdet till 0 eller ett litet värde kan det förhindra att frågor med operatorer som kräver arbetsyteminne, till exempel sort och hash, körs i användardefinierade arbetsbelastningsgrupper. Om frågeminneskraven överskrider den gräns som definieras av den här parametern inträffar följande beteende:
- För användardefinierade arbetsbelastningsgrupper försöker servern minska graden av parallellitet (DOP) för begäran (frågan) tills minneskravet ligger under gränsen eller tills DOP är lika med 1. Om frågeminneskravet fortfarande är större än gränsen uppstår fel 8657 och frågan misslyckas.
- För arbetsbelastningsgrupperna
internalochdefaulttillåter servern att frågan hämtar det minne som krävs.
I båda fallen kan fel 8645 inträffa om servern inte har tillräckligt med fysiskt minne.
REQUEST_MAX_CPU_TIME_SEC = värde
Anger den maximala cpu-tid i sekunder som en batchbegäran kan använda. värdet måste vara 0 eller ett positivt heltal. Standardinställningen för värde är 0, vilket innebär obegränsad.
När den maximala CPU-tiden överskrids genereras den cpu_threshold_exceeded utökade händelsen och en spårningshändelse. Mer information finns i CPU-tröskelvärdet överskred händelseklassen.
När den maximala CPU-tiden överskrids i Azure SQL Managed Instance avbryter resursguvernören begäran med fel 10961.
I SQL Server avbryter inte resursguvernören begäran som standard. Från och med SQL Server 2016 (13.x) SP2 och SQL Server 2017 (14.x) CU3 avbryter resursguvernören en begäran med fel 10961 när spårningsflagga 2422 är aktiverad och den maximala CPU-tiden överskrids.
REQUEST_MEMORY_GRANT_TIMEOUT_SEC = värde
Anger den maximala tid i sekunder som en fråga kan vänta på att ett minnesbidrag från frågearbetsytans minne ska bli tillgängligt. värdet måste vara 0 eller ett positivt heltal. Standardinställningen för -värdet, 0, använder en intern beräkning baserat på frågekostnaden för att fastställa den maximala tiden.
En fråga misslyckas inte alltid när tidsgränsen för minnesstipendium nås. En fråga misslyckas bara om det finns för många samtidiga frågor som körs. Annars kanske frågan bara får minsta möjliga minnesbidrag, vilket resulterar i lägre frågeprestanda.
MAX_DOP = värde
Anger den maximala graden av parallellitet (MAXDOP) för parallell frågekörning. Det tillåtna intervallet för värde är mellan 0 och 64. Standardinställningen för -värdet, 0, använder den globala inställningen.
Mer information finns i MAXDOP-.
GROUP_MAX_REQUESTS = värde
Anger det maximala antalet samtidiga begäranden som tillåts köras i arbetsbelastningsgruppen. värdet måste vara 0 eller ett positivt heltal. Standardinställningen för värde är 0 och tillåter obegränsade begäranden. När maximalt antal samtidiga begäranden nås kan en session i gruppen skapas, men placeras i vänteläge tills antalet samtidiga begäranden sjunker under det angivna värdet.
GROUP_MAX_TEMPDB_DATA_MB = värde
Anger den maximala mängden utrymme som en arbetsbelastningsgrupp kan använda i datafilerna tempdb i megabyte.
värdet måste vara 0 eller ett positivt tal. Bråkvärden tillåts.
När värdet är 0 tempdb tillåts inte utrymmesallokeringar efter sessioner i arbetsbelastningsgruppen. När ett värde inte har angetts begränsar tempdb resursguvernören inte utrymmesförbrukningen för arbetsbelastningsgruppen.
Gränsen är för det totala utrymme som förbrukas tempdb av alla sessioner i en arbetsbelastningsgrupp.
När en begäran som körs i en arbetsbelastningsgrupp försöker öka tempdb datautrymmets förbrukning av arbetsbelastningsgruppen över gränsen som anges av GROUP_MAX_TEMPDB_DATA_MB, avbryter resursguvernören begäran med fel 1138. Mer information finns i Tempdb-resursstyrning för utrymme.
GROUP_MAX_TEMPDB_DATA_PERCENT = värde
Anger den maximala mängden utrymme som en arbetsbelastningsgrupp kan använda i datafilerna tempdb , i procent av den maximala tempdb storleken. Definitionen av den maximala tempdb storleken finns i Konfiguration av procentgräns.
värdet måste ligga i intervallet från 0 till 100. Bråkvärden tillåts.
När värdet är 0 tempdb tillåts inte utrymmesallokeringar efter sessioner i arbetsbelastningsgruppen. När ett värde inte har angetts begränsar tempdb resursguvernören inte utrymmesförbrukningen för arbetsbelastningsgruppen. När GROUP_MAX_TEMPDB_DATA_MB har angetts, eller när tempdb den maximala storleken inte har definierats, GROUP_MAX_TEMPDB_DATA_PERCENT har ingen effekt.
Gränsen är för det totala utrymme som förbrukas tempdb av alla sessioner i en arbetsbelastningsgrupp.
När en begäran som körs i en arbetsbelastningsgrupp försöker öka tempdb datautrymmets förbrukning av arbetsbelastningsgruppen över gränsen som anges av GROUP_MAX_TEMPDB_DATA_PERCENT, avbryter resursguvernören begäran med fel 1138. Mer information finns i Tempdb-resursstyrning för utrymme.
USING { pool_name | [ standard ] }
Associerar arbetsbelastningsgruppen med den användardefinierade resurspoolen som identifieras av pool_nameeller med default resurspoolen. Om pool_name inte anges, eller om argumentet USING inte har angetts, associeras arbetsbelastningsgruppen med den inbyggda default poolen.
default är ett reserverat ord och när det anges i USING, måste omges av hakparenteser ([]) eller citattecken ("").
Inbyggda resurspooler och arbetsbelastningsgrupper använder alla gemener, till exempel default. Använd gemener default på servrar som använder en skiftlägeskänslig sortering. Servrar med skiftlägesokänslig sortering behandlar default, Defaultoch DEFAULT som samma värde.
Anmärkningar
ALTER WORKLOAD GROUP tillåts i arbetsbelastningsgruppen default, men inte i gruppen internal.
Ändringar i konfigurationen av arbetsbelastningsgruppen börjar inte gälla förrän ALTER RESOURCE GOVERNOR RECONFIGURE har körts.
Mer information finns i resource governor and Resource governor workload group.
MAXDOP
För en viss fråga bestäms effektiva MAXDOP på följande sätt:
-
MAXDOPsom ett frågetips respekteras så länge det inte överskrider arbetsbelastningsgruppensMAX_DOPinställning. -
MAXDOPsom ett frågetips åsidosätter alltidmax degree of parallelismserverkonfiguration. Mer information finns i Server-konfiguration: maximal grad av parallellitet. - Arbetsbelastningsgruppen
MAX_DOPåsidosättermax degree of parallelismserverkonfiguration ochMAXDOPdatabasomfattande konfiguration.
Gränsen för MAXDOP anges per aktivitet. Det är inte en per begäran eller per frågegräns. Under en körning av en parallell fråga kan en enskild begäran skapa flera uppgifter som har tilldelats till en schemaläggaren. Mer information finns i tråd- och aktivitetsarkitekturguiden.
När en fråga markeras som seriell vid kompileringstid (MAXDOP = 1) kan den inte köras med parallellitet vid körning oavsett arbetsbelastningsgrupp eller serverkonfigurationsinställning. När MAXDOP har bestämts för en fråga kan den bara sänkas på grund av minnesbelastning. Omkonfiguration av arbetsbelastningsgrupp påverkar inte frågor som väntar i kön för minnesbeviljande.
Cachelagrade planer
När du ändrar en plan som påverkar inställningen, till exempel MAX_DOP, börjar den nya inställningen gälla i tidigare cachelagrade planer först efter körningen av DBCC FREEPROCCACHE (<pool_name>), där <pool_name> är namnet på en resurspool som används av den aktuella arbetsbelastningsgruppen.
- Om du ändrar
MAX_DOPtill 1 krävs inte körning avDBCC FREEPROCCACHEeftersom parallella planer kan köras i serieläge. En sådan plan kan dock vara mindre effektiv än en plan som sammanställts som en serieplan. - Om du ändrar
MAX_DOPfrån 1 till 0 eller ett värde som är större än 1 krävs inte körning avDBCC FREEPROCCACHE. Serieplaner kan dock inte köras parallellt, så om du rensar respektive cache kan nya planer eventuellt kompileras med parallellitet.
Varning
Att rensa cachelagrade planer från en resurspool som är associerad med mer än en arbetsbelastningsgrupp påverkar alla arbetsbelastningsgrupper med hjälp av den användardefinierade resurspoolen som identifieras av <pool_name>.
Skapa index
Av prestandaskäl kan indexskapande använda mer minnesarbetsyta än vad som ursprungligen beviljades. Resursguvernören stöder den här särskilda hanteringen. Det första beviljandet och eventuella ytterligare minnesbidrag begränsas dock av arbetsbelastningsgruppen och inställningarna för resurspoolen.
Det minne som förbrukas för att skapa ett icke-berättigat index i en partitionerad tabell är proportionellt mot antalet berörda partitioner. Om det totala antalet minne som krävs överskrider gränsen per fråga som tillämpas av inställningen för REQUEST_MAX_MEMORY_GRANT_PERCENT arbetsbelastningsgrupp kan indexskapandet misslyckas. Eftersom den default arbetsbelastningsgruppen tillåter att en fråga överskrider gränsen per fråga med det minsta minne som krävs för att starta för bakåtkompatibilitet, kanske du kan skapa samma index med arbetsbelastningsgruppen default om default resurspoolen har tillräckligt med totalt minne.
Behörigheter
Kräver behörigheten CONTROL SERVER.
Exempel
I följande exempel visas hur du ändrar vikten av begäranden i standardgruppen från MEDIUM till LOW.
ALTER WORKLOAD GROUP [default]
WITH (IMPORTANCE = LOW);
ALTER RESOURCE GOVERNOR RECONFIGURE;
I följande exempel visas hur du flyttar en arbetsbelastningsgrupp från poolen som den för närvarande är i default poolen.
ALTER WORKLOAD GROUP adHoc
USING [default];
ALTER RESOURCE GOVERNOR RECONFIGURE;
Relaterat innehåll
- Resursguvernör
- resursguvernörens arbetsbelastningsgrupp
- Skapa en arbetsbelastningsgrupp
- Flytta en arbetsbelastningsgrupp
- SKAPA ARBETSBELASTNINGSGRUPP (Transact-SQL)
- SLÄPP ARBETSBELASTNINGSGRUPP (Transact-SQL)
- SKAPA RESURSPOOL (Transact-SQL)
- ÄNDRA RESURSPOOL (Transact-SQL)
- TA BORT RESURSPOOL (Transact-SQL)
- ÄNDRA RESURSGUVERNÖR (Transact-SQL)
- sys.resource_governor_workload_groups
- sys.dm_resource_governor_workload_groups
* Azure Synapse
Analys *
Azure Synapse Analytics
Ändrar en befintlig arbetsbelastningsgrupp.
Mer information om hur ALTER WORKLOAD GROUP fungerar i ett system med körnings- och köbegäranden finns i avsnittet ALTER WORKLOAD GROUP beteende nedan.
Begränsningar för CREATE WORKLOAD GROUP gäller även för ALTER WORKLOAD GROUP. Innan du ändrar parametrar frågar du sys.workload_management_workload_groups för att säkerställa att värdena ligger inom godkända intervall.
Syntax
ALTER WORKLOAD GROUP group_name
WITH
([ MIN_PERCENTAGE_RESOURCE = value ]
[ [ , ] CAP_PERCENTAGE_RESOURCE = value ]
[ [ , ] REQUEST_MIN_RESOURCE_GRANT_PERCENT = value ]
[ [ , ] REQUEST_MAX_RESOURCE_GRANT_PERCENT = value ]
[ [ , ] IMPORTANCE = { LOW | BELOW_NORMAL | NORMAL | ABOVE_NORMAL | HIGH }]
[ [ , ] QUERY_EXECUTION_TIMEOUT_SEC = value ] )
[ ; ]
Argument
group_name
Ändras namnet på den befintliga användardefinierade arbetsbelastningsgruppen. group_name kan inte ändras.
MIN_PERCENTAGE_RESOURCE = värde
värde är ett heltalsintervall från 0 till 100. När du ändrar MIN_PERCENTAGE_RESOURCE får summan av MIN_PERCENTAGE_RESOURCE för alla arbetsbelastningsgrupper inte överstiga 100. För att ändra MIN_PERCENTAGE_RESOURCE måste alla frågor som körs slutföras i arbetsbelastningsgruppen innan kommandot slutförs. Mer information finns i avsnittet ALTER WORKLOAD GROUP behavior i den här artikeln.
CAP_PERCENTAGE_RESOURCE = värde
värde är ett heltalsintervall från 1 till 100. Värdet för CAP_PERCENTAGE_RESOURCE måste vara större än MIN_PERCENTAGE_RESOURCE. För att ändra CAP_PERCENTAGE_RESOURCE måste alla frågor som körs slutföras i arbetsbelastningsgruppen innan kommandot slutförs. Mer information finns i avsnittet ALTER WORKLOAD GROUP behavior i den här artikeln.
REQUEST_MIN_RESOURCE_GRANT_PERCENT = värde
värdet är en decimal med ett intervall mellan 0,75 och 100,00. Värdet för REQUEST_MIN_RESOURCE_GRANT_PERCENT måste vara en faktor för MIN_PERCENTAGE_RESOURCE och vara mindre än CAP_PERCENTAGE_RESOURCE.
REQUEST_MAX_RESOURCE_GRANT_PERCENT = värde
värdet är en decimal och måste vara större än REQUEST_MIN_RESOURCE_GRANT_PERCENT.
IMPORTANCE = { LOW | BELOW_NORMAL | NORMAL | ABOVE_NORMAL | HÖG }
Ändrar standardvikten för en begäran för arbetsbelastningsgruppen.
QUERY_EXECUTION_TIMEOUT_SEC = värde
Ändrar den maximala tid, i sekunder, som en fråga kan köra innan den avbryts. Värdet måste vara 0 eller ett positivt heltal. Standardinställningen för värdet är 0, vilket innebär obegränsad.
Behörigheter
Kräver behörigheten CONTROL DATABASE.
Exempel
I exemplet nedan kontrolleras värdena i katalogvyn för en arbetsbelastningsgrupp med namnet wgDataLoadsoch ändrar värdena.
SELECT *
FROM sys.workload_management_workload_groups
WHERE [name] = 'wgDataLoads'
ALTER WORKLOAD GROUP wgDataLoads WITH
( MIN_PERCENTAGE_RESOURCE = 40
, CAP_PERCENTAGE_RESOURCE = 80
, REQUEST_MIN_RESOURCE_GRANT_PERCENT = 10 )
ÄNDRA BETEENDE FÖR ARBETSBELASTNINGSGRUPP
När som helst finns det tre typer av begäranden i systemet:
- Begäranden som inte har klassificerats ännu.
- Begäranden som klassificeras och väntar på objektlås eller systemresurser.
- Begäranden som klassificeras och körs.
Baserat på egenskaperna för en arbetsbelastningsgrupp som ändras skiljer sig tidpunkten för när inställningarna börjar gälla.
Prioritet eller query_execution_timeout
För egenskaperna prioritet och query_execution_timeout hämtar icke-klassificerade begäranden de nya konfigurationsvärdena. Väntande och körande begäranden körs med den gamla konfigurationen. Den ALTER WORKLOAD GROUP begäran körs omedelbart oavsett om det finns frågor som körs i arbetsbelastningsgruppen.
REQUEST_MIN_RESOURCE_GRANT_PERCENT eller REQUEST_MAX_RESOURCE_GRANT_PERCENT
För REQUEST_MIN_RESOURCE_GRANT_PERCENT och REQUEST_MAX_RESOURCE_GRANT_PERCENT körs begäranden med den gamla konfigurationen. Väntande begäranden och icke-klassificerade begäranden hämtar de nya konfigurationsvärdena. Den ALTER WORKLOAD GROUP begäran körs omedelbart oavsett om det finns frågor som körs i arbetsbelastningsgruppen.
MIN_PERCENTAGE_RESOURCE eller CAP_PERCENTAGE_RESOURCE
För MIN_PERCENTAGE_RESOURCE och CAP_PERCENTAGE_RESOURCE körs begäranden med den gamla konfigurationen. Väntande begäranden och icke-klassificerade begäranden hämtar de nya konfigurationsvärdena.
För att ändra MIN_PERCENTAGE_RESOURCE och CAP_PERCENTAGE_RESOURCE krävs att begäranden som körs i den arbetsbelastningsgrupp som ändras töms. När du minskar MIN_PERCENTAGE_RESOURCE returneras de frigjorda resurserna till resurspoolen så att begäranden från andra arbetsbelastningsgrupper kan användas. Omvänt väntar en ökning av MIN_PERCENTAGE_RESOURCE tills begäranden som endast använder de resurser som behövs från den delade poolen slutförs. Den ALTER WORKLOAD GROUP åtgärden har prioriterad åtkomst till delade resurser framför andra begäranden som väntar på att köras i en delad pool. Om summan av MIN_PERCENTAGE_RESOURCE överskrider 100%misslyckas ALTER WORKLOAD GROUP begäran omedelbart.
Låsningsbeteende
För att ändra en arbetsbelastningsgrupp krävs ett globalt lås för alla arbetsbelastningsgrupper. En begäran om att ändra en arbetsbelastningsgrupp skulle köa bakom redan skickade begäranden om att skapa eller ta bort arbetsbelastningsgrupper. Om en batch med alter-instruktioner skickas samtidigt bearbetas de i den ordning de skickas.