ALTER RESOURCE POOL (Transact-SQL)

 

CETTE RUBRIQUE S’APPLIQUE À :ouiSQL Server (à partir de la version 2008)nonAzure SQL DatabasenonAzure SQL Data WarehousenonParallel Data Warehouse

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

Topic link iconConventions de syntaxe transact-SQL.

  
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]  

{ 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.

System_CAPS_ICON_note.jpg Remarque


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 =valeur
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. valeur est un entier dont la valeur par défaut 0. La plage autorisée pour valeur est comprise entre 0 et 100.

MAX_CPU_PERCENT =valeur
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. valeur est un entier avec un paramètre par défaut est 100. La plage autorisée pour valeur est comprise entre 1 et 100.

CAP_CPU_PERCENT =valeur

S'applique à: SQL Server 2012 et SQL Server 2016.

Spécifie la capacité du processeur maximale de cible pour les demandes dans le pool de ressources. valeur est un entier avec un paramètre par défaut est 100. La plage autorisée pour valeur est comprise entre 1 et 100.

System_CAPS_ICON_note.jpg Remarque


En raison de la nature statistique de gouvernance du processeur, vous pouvez remarquer des pics occasionnels dépassant 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 et SQL Server 2016.

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 mappage aux valeurs dans la colonne scheduler_id sys.dm_os_schedulers (Transact-SQL).

Lorsque vous utilisez AFFINITY NAMANODE = (NUMA_node_range_spec), le pool de ressources possède une affinité avec les planificateurs SQL Server qui mappent aux UC physiques correspondant au nœud NUMA ou à la plage de nœuds donnée. 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 =valeur
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. valeur est un entier dont la valeur par défaut 0. La plage autorisée pour valeur est comprise entre 0 et 100.

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

MIN_IOPS_PER_VOLUME =valeur

S'applique à: SQL Server 2014 et SQL Server 2016.

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 valeur 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 =valeur

S'applique à: SQL Server 2014 et SQL Server 2016.

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 valeur 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.

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 la capacité de processeur au-dessus de la valeur de MAX_CPU_PERCENT si elle est disponible. Bien qu’il peut y avoir des pics périodiques au-delà de CAP_CPU_PERCENT, les charges de travail ne doivent pas dépasser CAP_CPU_PERCENT pendant de longues périodes de temps, même lorsque la 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 le gouverneur de ressources.

Lorsque vous modifiez un plan affectant le paramètre, le nouveau paramètre seulement prendront effet dans les plans mis en cache précédemment après l’exécution de DBCC FREEPROCCACHE (pool_name), où pool_name est le nom d’un pool de ressources du gouverneur de ressources.

  • Si vous changez d’affinité à partir de plusieurs planificateurs à un planificateur unique, l’exécution de DBCC FREEPROCCACHE n’est pas requis, car des plans parallèles peuvent s’exécuter en mode série. Toutefois, il peut être pas aussi efficace que d’un plan compilé sous la forme d’un plan en série.

  • Si vous changez d’affinité d’un planificateur unique à plusieurs planificateurs, l’exécution de DBCC FREEPROCCACHE n’est pas nécessaire. Toutefois, les plans en série ne peut pas s’exécuter en parallèle, afin de vider le cache respectif permettra de nouveaux plans potentiellement être compilé à l’aide de parallélisme.

System_CAPS_ICON_caution.jpg Attention


Effacement des plans mis en cache à partir d’un pool de ressources est associé à plusieurs groupes de charges de travail affectera tous les groupes de charges de travail au pool de ressources définies par l’utilisateur identifié par pool_name.

Requiert l'autorisation CONTROL SERVER.

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 et SQL Server 2016.
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  
  

Gouverneur de ressources
CRÉER le POOL de ressources (Transact-SQL)
SUPPRIMER le POOL de ressources (Transact-SQL)
CRÉER le groupe de charges de travail (Transact-SQL)
ALTER WORKLOAD GROUP (Transact-SQL)
DROP WORKLOAD GROUP (Transact-SQL)
ALTER RESOURCE GOVERNOR (Transact-SQL)

Ajouts de la communauté

AJOUTER
Afficher: