Condividi tramite


CREATE RESOURCE POOL (Transact-SQL)

Crea un pool di risorse di Resource Governor in SQL Server. Un pool di risorse rappresenta un subset delle risorse fisiche (memoria, CPU e IO) di un'istanza del motore di database. Resource Governor consente a un amministratore di database di distribuire le risorse del server tra pool di risorse, fino a un massimo di 64 pool. Resource Governor non è disponibile in tutte le edizioni di SQL Server. Per un elenco delle funzionalità supportate dalle edizioni di SQL Server, vedere Funzionalità supportate dalle edizioni di SQL Server 2014.

Si applica a: SQL Server (da SQL Server 2008 alla versione corrente).

Icona di collegamento a un argomento Convenzioni della sintassi Transact-SQL.

Sintassi

CREATE RESOURCE POOL pool_name
[ 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]

Argomenti

  • pool_name
    Nome definito dall'utente per il pool di risorse. pool_name è un valore alfanumerico, può essere composto da un massimo di 128 caratteri, deve essere univoco all'interno di un'istanza di SQL Server e deve essere conforme alle regole relative agli identificatori.

  • MIN_CPU_PERCENT =value
    Specifica la larghezza di banda media garantita della CPU concessa per tutte le richieste nel pool di risorse, in caso di contesa di CPU. value è di tipo integer e il valore predefinito è 0. L'intervallo consentito per value è compreso tra 0 e 100.

  • MAX_CPU_PERCENT =value
    Specifica la larghezza di banda media massima della CPU concessa per tutte le richieste nel pool di risorse in caso di contesa di CPU. value è di tipo integer e il valore predefinito è 100. L'intervallo consentito per value è compreso tra 1 e 100.

  • CAP_CPU_PERCENT =value

    Si applica a: da SQL Server 2012 a SQL Server 2014.

    Specifica il limite di utilizzo massimo della larghezza di banda della CPU concesso per tutte le richieste nel pool di risorse. Limita il livello massimo della larghezza di banda della CPU al valore specificato. value è di tipo integer e il valore predefinito è 100. L'intervallo consentito per value è compreso tra 1 e 100.

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

    Si applica a: da SQL Server 2012 a SQL Server 2014.

    Associa il pool di risorse a utilità di pianificazione specifiche. Il valore predefinito è AUTO.

    AFFINITY SCHEDULER = ( <scheduler_range_spec> ) esegue il mapping del pool di risorse alle pianificazioni di SQL Server identificate dagli ID specificati. Questi ID eseguono il mapping ai valori nella colonna scheduler_id di sys.dm_os_schedulers (Transact-SQL).

    Se si utilizza AFFINITY NUMANODE = ( <NUMA_node_range_spec> ), viene creata un'affinità tra il pool di risorse e le utilità di pianificazione di SQL Server che eseguono il mapping alle CPU fisiche corrispondenti al nodo o all'intervallo di nodi NUMA specificato. È possibile utilizzare la seguente query Transact-SQL per individuare il mapping tra la configurazione NUMA fisica e gli ID delle utilità di pianificazione di SQL Server.

    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 =value
    Specifica la quantità minima di memoria riservata al pool di risorse non condivisibile con altri pool di risorse. value è di tipo integer e il valore predefinito è 0. L'intervallo consentito per value è compreso tra 0 e 100.

  • MAX_MEMORY_PERCENT =value
    Specifica la memoria totale del server utilizzabile dalle richieste in questo pool di risorse. value è un intero con il valore predefinito 100. L'intervallo consentito per value è compreso tra 1 e 100.

  • MIN_IOPS_PER_VOLUME =value

    Si applica a: da SQL Server 2014 a SQL Server 2014.

    Specifica il numero minimo di operazioni di I/O al secondo per volume di disco da riservare per il pool di risorse. L'intervallo consentito per value è compreso tra 0 e 2^31-1 (2,147,483,647). Specificare 0 per indicare che non è impostata alcuna soglia minima per il pool. Il valore predefinito è 0.

  • MAX_IOPS_PER_VOLUME =value

    Si applica a: da SQL Server 2014 a SQL Server 2014.

    Specifica il numero massimo di operazioni di I/O al secondo per volume di disco da riservare per il pool di risorse. L'intervallo consentito per value è compreso tra 0 e 2^31-1 (2,147,483,647). Specificare 0 per impostare una soglia illimitata per il pool. Il valore predefinito è 0.

    Se il valore MAX_IOPS_PER_VOLUME per un pool è impostato su 0, il pool non è governato e può accettare tutti gli IOPS nel sistema anche se in altri pool è stato impostato il valore MIN_IOPS_PER_VOLUME. In questo caso, è consigliabile impostare il valore MAX_IOPS_PER_VOLUME per questo pool su un numero elevato, ad esempio il valore massimo 2^31-1, se si desidera che questo pool sia governato per l'I/O.

Osservazioni

MIN_IOPS_PER_VOLUME e MAX_IOPS_PER_VOLUME specificano il numero minimo e massimo di letture o scritture al secondo. Queste letture o scritture possono essere di qualsiasi dimensione e non indicano una velocità effettiva minima e massima.

I valori di MAX_CPU_PERCENT e MAX_MEMORY_PERCENT devono essere maggiori o uguali ai valori di MIN_CPU_PERCENT e MIN_MEMORY_PERCENT, rispettivamente.

CAP_CPU_PERCENT è diverso da MAX_CPU_PERCENT per il fatto che i carichi di lavoro associati al pool possono utilizzare una capacità della CPU superiore rispetto al valore di MAX_CPU_PERCENT, se disponibile, ma non superiore rispetto al valore di CAP_CPU_PERCENT.

La percentuale totale di CPU per ogni componente per il quale è impostata l'affinità (utilità di pianificazione o nodi NUMA) non deve superare il 100%.

Autorizzazioni

È richiesta l'autorizzazione CONTROL SERVER.

Esempi

Nell'esempio seguente viene illustrato come creare un pool di risorse denominato bigPool. Il pool utilizza le impostazioni predefinite di Resource Governor.

CREATE RESOURCE POOL bigPool;
GO
ALTER RESOURCE GOVERNOR RECONFIGURE;
GO

Nell'esempio seguente per CAP_CPU_PERCENT viene impostato un limite di utilizzo massimo pari al 30%, mentre per AFFINITY SCHEDULER viene impostato un intervallo compreso tra 0 e 63 e tra 128 e 191.

Si applica a: da SQL Server 2012 a SQL Server 2014.

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

Nell'esempio seguente MIN_IOPS_PER_VOLUME viene impostato su <un valore> e MAX_IOPS_PER_VOLUME viene impostato su <un valore>. Questi valori determinano le operazioni di lettura e scrittura di I/O fisico disponibili per il pool di risorse.

Si applica a: da SQL Server 2014 a SQL Server 2014.

CREATE RESOURCE POOL PoolAdmin
WITH (
    MIN_IOPS_PER_VOLUME = 20,
    MAX_IOPS_PER_VOLUME = 100
      );

Vedere anche

Riferimento

ALTER RESOURCE POOL (Transact-SQL)

DROP RESOURCE POOL (Transact-SQL)

CREATE WORKLOAD GROUP (Transact-SQL)

ALTER WORKLOAD GROUP (Transact-SQL)

DROP WORKLOAD GROUP (Transact-SQL)

ALTER RESOURCE GOVERNOR (Transact-SQL)

Concetti

Pool di risorse di Resource Governor

Creare un pool di risorse