Dela via


ÄNDRA RESURSPOOL (Transact-SQL)

gäller för:SQL ServerAzure SQL Managed Instance

Ändrar en befintlig resursguvernör resurspoolskonfiguration för en databasmotorinstans.

Not

För Azure SQL Managed Instance måste du vara i kontexten för den master databasen för att ändra konfigurationen av resursguvernören.

Transact-SQL syntaxkonventioner

Syntax

ALTER RESOURCE POOL { pool_name | [default] }
[WITH
    ( [ MIN_CPU_PERCENT = value ]
    [ [ , ] MAX_CPU_PERCENT = value ]
    [ [ , ] CAP_CPU_PERCENT = value ]
    [ [ , ] AFFINITY {
                        SCHEDULER = AUTO
                      | ( <scheduler_range_spec> )
                      | NUMANODE = ( <NUMA_node_range_spec> )
                      }]
    [ [ , ] MIN_MEMORY_PERCENT = value ]
    [ [ , ] MAX_MEMORY_PERCENT = value ]
    [ [ , ] MIN_IOPS_PER_VOLUME = value ]
    [ [ , ] MAX_IOPS_PER_VOLUME = value ]
)]
[;]

<scheduler_range_spec> ::=
{SCHED_ID | SCHED_ID TO SCHED_ID}[,...n]

<NUMA_node_range_spec> ::=
{NUMA_node_ID | NUMA_node_ID TO NUMA_node_ID}[,...n]

Argument

{ pool_name | [standard] }

Är namnet på en befintlig användardefinierad resurspool eller den inbyggda default resurspoolen.

default måste vara inom hakparenteser ([]) eller citattecken ("") när de används med ALTER RESOURCE POOL 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.

MIN_CPU_PERCENT = värde

Anger den garanterade genomsnittliga CPU-bandbredden för alla begäranden i resurspoolen när det finns CPU-konkurrens. värde är ett heltal med standardinställningen 0. Det tillåtna intervallet för värde är mellan 0 och 100.

MAX_CPU_PERCENT = värde

Anger den maximala genomsnittliga CPU-bandbredden som alla begäranden i resurspoolen tar emot när det finns CPU-konkurrens. värde är ett heltal med standardinställningen 100. Det tillåtna intervallet för värde är från 1 till 100.

CAP_CPU_PERCENT = värde

gäller för: SQL Server 2012 (11.x) och senare.

Anger ett hårt tak för processorbandbredden som alla begäranden i resurspoolen tar emot. Begränsar den maximala processorbandbreddsnivån till samma som det angivna värdet. värde är ett heltal med standardinställningen 100. Det tillåtna intervallet för värde är från 1 till 100.

Not

På grund av cpu-styrningens statistiska karaktär kan det hända att enstaka korta toppar överskrider det värde som anges i CAP_CPU_PERCENT.

AFFINITET {SCHEDULER = AUTO | ( <scheduler_range_spec> ) | NUMANODE = (<NUMA_node_range_spec>)}

gäller för: SQL Server 2012 (11.x) och senare.

Koppla resurspoolen till specifika schemaläggare. Standardvärdet är AUTO.

Om du anger <scheduler_range_spec> för AFFINITY SCHEDULER mappas resurspoolen till databasmotorns schemaläggare som identifieras av de angivna ID:erna. Dessa ID:er mappas till värdena i kolumnen scheduler_id i sys.dm_os_schedulers.

Om du anger <NUMA_node_range_spec> för AFFINITY NUMANODE mappas resurspoolen till databasmotorns schemaläggare som mappas till de logiska processorer som motsvarar den angivna NUMA-noden eller ett intervall med noder. Du kan använda följande Transact-SQL fråga för att identifiera mappningen mellan den fysiska NUMA-konfigurationen och schemaläggnings-ID:n för databasmotorn.

SELECT osn.memory_node_id AS numa_node_id,
       sc.cpu_id,
       sc.scheduler_id
FROM sys.dm_os_nodes AS osn
INNER JOIN sys.dm_os_schedulers AS sc
ON osn.node_id = sc.parent_node_id
   AND
   sc.scheduler_id < 1048576;

MIN_MEMORY_PERCENT = värde

Anger den minsta mängd minne för frågearbetsytan som är reserverat för resurspoolen som inte kan delas med andra resurspooler. värde är ett heltal med standardinställningen 0. Det tillåtna intervallet för värde är mellan 0 och 100.

MAX_MEMORY_PERCENT = värde

Anger den maximala mängden minne för frågearbetsytan som begäranden i den här resurspoolen kan använda. värde är ett heltal med standardinställningen 100. Det tillåtna intervallet för värde är från 1 till 100.

MIN_IOPS_PER_VOLUME = värde

gäller för: SQL Server 2014 (12.x) och senare.

Anger minsta I/O-åtgärder per sekund (IOPS) per diskvolym som ska reserveras för resurspoolen. Det tillåtna intervallet för värde är från 0 till 2^31-1 (2 147 483 647). Ange 0 för att ange något minimum för poolen. Standardvärdet är 0.

MAX_IOPS_PER_VOLUME = värde

gäller för: SQL Server 2014 (12.x) och senare.

Anger maximalt antal I/O-åtgärder per sekund (IOPS) per diskvolym som ska tillåtas för resurspoolen. Det tillåtna intervallet för värde är från 0 till 2^31-1 (2 147 483 647). Ange 0 för att ta bort en IOPS-gräns för poolen. Standardvärdet är 0.

Om MAX_IOPS_PER_VOLUME för en pool är inställd på 0 är poolen inte alls IO-styrd och kan ta alla IOPS i systemet även om andra pooler har MIN_IOPS_PER_VOLUME angetts. I det här fallet rekommenderar vi att du anger MAX_IOPS_PER_VOLUME värdet för den här poolen till ett högt tal (till exempel det maximala värdet 2^31-1) för att göra poolenS I/O-styrd och för att uppfylla de IOPS-reservationer som kan finnas för andra pooler.

Anmärkningar

Summan av MIN_CPU_PERCENT eller MIN_MEMORY_PERCENT för alla resurspooler får inte överstiga 100 procent.

MIN_IOPS_PER_VOLUME och MAX_IOPS_PER_VOLUME ange lägsta och högsta I/O per sekund. I/O kan vara antingen läsningar eller skrivningar och kan vara av valfri storlek. Med samma IOPS-gränser kan därför det lägsta och högsta I/O-dataflödet variera beroende på blandningen av I/O-storlekar i arbetsbelastningen.

Värdena för MAX_CPU_PERCENT och MAX_MEMORY_PERCENT måste vara större än eller lika med värdena för MIN_CPU_PERCENT respektive MIN_MEMORY_PERCENT.

CAP_CPU_PERCENT skiljer sig från MAX_CPU_PERCENT eftersom arbetsbelastningar som är associerade med poolen kan använda processorkapacitet över värdet för MAX_CPU_PERCENT om den är tillgänglig, men inte över värdet för CAP_CPU_PERCENT. Även om det kan finnas korta toppar som är högre än CAP_CPU_PERCENTkan arbetsbelastningar inte överskrida CAP_CPU_PERCENT under längre tidsperioder, även om det finns ytterligare processorkapacitet.

Den totala CPU-procentandelen för varje tillhörighetskomponent (schemaläggare eller NUMA-noder) får inte överstiga 100 procent.

Mer information finns i resurspoolen Resource Governor och Resource Governor.

Cachelagrade planer

När du ändrar en plan som påverkar inställningen börjar den nya inställningen gälla i tidigare cachelagrade planer först efter att DBCC FREEPROCCACHE (<pool_name>), där <pool_name> är namnet på resurspoolen för resursguvernören.

  • Om du ändrar AFFINITY från flera schemaläggare till en enda schemaläggare krävs inte körning av DBCC FREEPROCCACHE eftersom 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 AFFINITY från en enda schemaläggare till flera schemaläggare krävs inte körning av DBCC 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>.

Behörigheter

Kräver behörigheten CONTROL SERVER.

Exempel

I följande exempel behålls alla aktuella resurspoolsinställningar för default-poolen, förutom MAX_CPU_PERCENT, som ändras till 25 procent.

ALTER RESOURCE POOL [default] WITH (MAX_CPU_PERCENT = 25);

ALTER RESOURCE GOVERNOR RECONFIGURE;

I följande exempel ändras adhocPool resurspool enligt följande:

  • Reserverar 10 procent av processorn och 5 procent av frågearbetsytans minne med hjälp av MIN_CPU_PERCENT respektive MIN_MEMORY_PERCENT.
  • Anger en minnesgräns på 15 procent för frågearbetsytan med hjälp av MAX_MEMORY_PERCENT.
  • Anger ett 20-procentigt mjukt CPU-tak med ett 30 procent hårt CPU-tak med hjälp av MAX_CPU_PERCENT respektive CAP_CPU_PERCENT.
  • Mappar poolen till två intervall med logiska processorer (0 till 63 och 128 till 191) med hjälp av AFFINITY SCHEDULER.

gäller för: SQL Server 2012 (11.x) och senare.

ALTER RESOURCE POOL adhocPool
WITH (
     MIN_CPU_PERCENT = 10,
     MAX_CPU_PERCENT = 20,
     CAP_CPU_PERCENT = 30,
     MIN_MEMORY_PERCENT = 5,
     MAX_MEMORY_PERCENT = 15,
     AFFINITY SCHEDULER = (0 TO 63, 128 TO 191)
     );

ALTER RESOURCE GOVERNOR RECONFIGURE;