ALTER RESOURCE POOL (Transact-SQL)

S’applique à : SQL Server Azure SQL Managed Instance

Modifie une configuration de pool de ressources du gouverneur de ressources existante dans SQL Server.

Conventions de la syntaxe Transact-SQL

Syntaxe

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]  

Arguments

{ pool_name | "default" }
Nom d’un pool de ressources défini par l’utilisateur existant ou du pool de ressources par défaut créé lors de l’installation de SQL Server.

Le paramètre default doit être placé entre des guillemets doubles ("") ou des crochets ([]) lorsqu'il est utilisé avec l'instruction ALTER RESOURCE POOL pour éviter tout conflit avec DEFAULT, qui est un mot réservé au système. Pour plus d'informations, consultez Database Identifiers.

Notes

Les groupes de charges de travail et les pools de ressources prédéfinis utilisent tous des noms en minuscule, tels que « default ». Ce facteur doit être pris en considération pour les serveurs qui utilisent un classement qui respecte la casse. Les serveurs avec un classement qui ne respecte pas la casse, tel que SQL_Latin1_General_CP1_CI_AS, traitent "default" et "Default" comme identiques.

MIN_CPU_PERCENT =value
Spécifie la bande passante de l'UC moyenne garantie pour toutes les demandes dans le pool de ressources en cas de contention de l'UC. value est un entier dont la valeur par défaut est 0. La plage autorisée pour value est comprise entre 0 et 100.

MAX_CPU_PERCENT =value
Spécifie la bande passante de l'UC moyenne maximale que toutes les demandes du pool de ressources recevront en cas de contention de l'UC. value est un entier dont la valeur par défaut est 100. La plage autorisée pour value est comprise entre 1 et 100.

CAP_CPU_PERCENT =value
S’applique à : SQL Server 2012 (11.x) et versions ultérieures.

Spécifie la capacité maximale cible de l’UC pour les requêtes dans le pool de ressources. value est un entier dont la valeur par défaut est 100. La plage autorisée pour value est comprise entre 1 et 100.

Notes

En raison de la nature statistique de la gouvernance de l’UC, vous pouvez remarquer des pics occasionnels supérieurs à la valeur spécifiée dans CAP_CPU_PERCENT.

AFFINITY {SCHEDULER = AUTO | (Scheduler_range_spec) | NUMANODE = (NUMA_node_range_spec)}
S’applique à : SQL Server 2012 (11.x) et versions ultérieures.

Attache le pool de ressources aux planificateurs spécifiques. La valeur par défaut est AUTO.

AFFINITY SCHEDULER = (Scheduler_range_spec) mappe le pool de ressources aux planifications SQL Server identifiées par les ID donnés. Ces ID correspondent aux valeurs de la colonne scheduler_id dans sys.dm_os_schedulers (Transact-SQL).

Quand vous utilisez AFFINITY NAMANODE = (NUMA_node_range_spec), une affinité est créée pour le pool de ressources et les planificateurs SQL Server qui sont mappés aux processeurs physiques correspondant au nœud NUMA ou à la plage de nœuds donné. Vous pouvez utiliser la requête Transact-SQL ci-après pour découvrir le mappage entre la configuration NUMA physique et les ID du planificateur 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
Spécifie la quantité de mémoire minimale réservée à ce pool de ressources qui ne peut pas être partagée avec d'autres pools de ressources. value est un entier dont la valeur par défaut est 0. La plage autorisée pour value est comprise entre 0 et 100.

MAX_MEMORY_PERCENT =value
Spécifie la mémoire totale du serveur qui peut être utilisée par les demandes dans ce pool de ressources. value est un entier dont la valeur par défaut est 100. La plage autorisée pour value est comprise entre 1 et 100.

MIN_IOPS_PER_VOLUME =value
S’applique à : SQL Server 2014 (12.x) et versions ultérieures.

Spécifie les opérations d'E/S minimales par seconde (IOPS) par volume disque à réserver au pool de ressources. La plage autorisée pour value est comprise entre 0 et 2^31-1 (2 147 483 647). Spécifiez 0 pour indiquer l'absence de seuil minimal pour le pool.

MAX_IOPS_PER_VOLUME =value
S’applique à : SQL Server 2014 (12.x) et versions ultérieures.

Spécifie les opérations d'E/S maximales par seconde (IOPS) par volume disque à autoriser pour le pool de ressources. La plage autorisée pour value est comprise entre 0 et 2^31-1 (2 147 483 647). Spécifiez 0 pour définir un seuil illimité pour le pool. La valeur par défaut est 0.

Si le MAX_IOPS_PER_VOLUME pour un pool a la valeur 0, le pool n'est pas régi du tout et peut prendre toutes les E/S par seconde dans le système même si MIN_IOPS_PER_VOLUME est défini pour d'autres pools. Dans ce cas, nous vous recommandons de définir la valeur MAX_IOPS_PER_VOLUME de ce pool sur un nombre élevé (par exemple, la valeur maximale 2^31-1) si vous voulez que ce pool soit régi pour les E/S.

Notes

MAX_CPU_PERCENT et MAX_MEMORY_PERCENT doivent respectivement être supérieurs ou égaux à MIN_CPU_PERCENT et MIN_MEMORY_PERCENT.

MAX_CPU_PERCENT peut utiliser une capacité d’UC supérieure à la valeur de MAX_CPU_PERCENT si elle est disponible. Bien qu’il puisse y avoir des pics périodiques au-dessus de CAP_CPU_PERCENT, les charges de travail ne doivent pas dépasser CAP_CPU_PERCENT pendant de longues périodes, même quand une capacité d’UC supplémentaire est disponible.

Le pourcentage de l'UC total pour chaque composant d'affinité (planificateur(s) ou nœud(s) NUMA) ne doit pas dépasser 100 %.

Lorsque vous exécutez des instructions DDL, nous vous recommandons de connaître les états du gouverneur de ressources. Pour plus d’informations, consultez Resource Governor.

Quand vous modifiez un paramètre qui affecte le plan, le nouveau paramètre prend effet uniquement dans les plans précédemment mis en cache après l’exécution de DBCC FREEPROCCACHE (pool_name), où pool_name est le nom d’un pool de ressources Resource Governor.

  • Si vous changez AFFINITY de plusieurs planificateurs à un planificateur unique, l’exécution de DBCC FREEPROCCACHE n’est pas obligatoire, car des plans parallèles peuvent s’exécuter en mode série. Toutefois, cela risque de ne pas être aussi efficace qu’un plan compilé en tant que plan en série.

  • Si vous changez AFFINITY d’un planificateur unique à plusieurs planificateurs, l’exécution de DBCC FREEPROCCACHE n’est pas obligatoire. Toutefois, les plans en série ne pouvant pas s’exécuter en parallèle, l’effacement du cache respectif permettra aux nouveaux plans d’être compilés à l’aide du parallélisme.

Attention

L’effacement des plans mis en cache à partir d’un pool de ressources associé à plusieurs groupes de charges de travail affecte tous les groupes de charges de travail contenant le pool de ressources défini par l’utilisateur identifié par pool_name.

Autorisations

Requiert l'autorisation CONTROL SERVER.

Exemples

L'exemple suivant conserve tous les paramètres du pool de ressources par défaut sur le pool default à l'exception de MAX_CPU_PERCENT qui est remplacé par 25.

ALTER RESOURCE POOL "default"  
WITH  
     ( MAX_CPU_PERCENT = 25);  
GO  
ALTER RESOURCE GOVERNOR RECONFIGURE;  
GO  

Dans l'exemple suivant, CAP_CPU_PERCENT définit la limite maximale d'utilisation fixe à 80 % et AFFINITY SCHEDULER a une valeur individuelle de 8 et une plage de 12 à 16.

S’applique à : SQL Server 2012 (11.x) et versions ultérieures.

ALTER RESOURCE POOL Pool25  
WITH(   
     MIN_CPU_PERCENT = 5,  
     MAX_CPU_PERCENT = 10,       
     CAP_CPU_PERCENT = 80,  
     AFFINITY SCHEDULER = (8, 12 TO 16),   
     MIN_MEMORY_PERCENT = 5,  
     MAX_MEMORY_PERCENT = 15  
);  
  
GO  
ALTER RESOURCE GOVERNOR RECONFIGURE;  
GO  

Voir aussi

gouverneur de ressources
CREATE 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)