ALTER RESOURCE GOVERNOR (Transact-SQL)
S’applique à :SQL ServerAzure SQL Managed Instance
Cette instruction effectue les actions de gouverneur de ressources suivantes :
- Activez ou désactivez resource governor.
- Appliquez les modifications de configuration spécifiées lorsque les instructions
CREATE | ALTER | DROP WORKLOAD GROUP
ouCREATE | ALTER | DROP RESOURCE POOL
ouCREATE | ALTER | DROP EXTERNAL RESOURCE POOL
sont exécutées. - Configurez la classification pour les sessions entrantes.
- Réinitialiser le groupe de charges de travail et les statistiques de pool de ressources.
- Définissez les opérations d’E/S en file d’attente maximales par volume de disque.
Conventions de la syntaxe Transact-SQL
Syntaxe
ALTER RESOURCE GOVERNOR
{ RECONFIGURE
[ WITH
( [ CLASSIFIER_FUNCTION = { schema_name.function_name | NULL } ]
[ [ , ] MAX_OUTSTANDING_IO_PER_VOLUME = value ]
)
]
| DISABLE
| RESET STATISTICS
}
[ ; ]
Arguments
RECONFIGURE
Lorsque resource governor n’est pas activé, RECONFIGURE
active resource governor. L’activation de Resource Governor a les résultats suivants :
- La fonction classifieur, le cas échéant, est exécutée pour les nouvelles sessions, en les affectant aux groupes de charge de travail.
- Les réservations de ressources et les limites spécifiées dans la configuration du gouverneur de ressources sont respectées et appliquées.
- Les demandes qui existaient avant l’activation du gouverneur de ressources peuvent être affectées par les modifications de configuration apportées lors de l’activation du gouverneur de ressources.
Lorsque resource governor est activé, RECONFIGURE
applique toutes les modifications de configuration apportées par les instructions CREATE | ALTER | DROP WORKLOAD GROUP
ou CREATE | ALTER | DROP RESOURCE POOL
ou CREATE | ALTER | DROP EXTERNAL RESOURCE POOL
après l’utilisation précédente de RECONFIGURE
ou après le dernier redémarrage du moteur de base de données.
Important
ALTER RESOURCE GOVERNOR RECONFIGURE
devez être exécuté pour que les modifications de configuration de Resource Governor prennent effet.
CLASSIFIER_FUNCTION = { schema_name.function_name | NULL }
Enregistre la fonction de classification spécifiée par schema_name.function_name. Cette fonction classifie chaque nouvelle session et affecte la session à un groupe de charge de travail. Lorsque NULL
est utilisé, de nouvelles sessions sont automatiquement affectées au groupe de charge de travail default
.
MAX_OUTSTANDING_IO_PER_VOLUME = value
S’applique à : SQL Server 2014 (12.x) et versions ultérieures.
Définit les opérations d'E/S maximales en file d'attente par volume disque. Ces opérations d'E/S en peuvent être des lectures ou des écritures de toute taille. La valeur maximale de MAX_OUTSTANDING_IO_PER_VOLUME
est 100. La valeur n’est pas un pourcentage. Ce paramètre est conçu pour adapter la gouvernance des ressources d'E/S aux spécifications d'E/S d'un volume disque. Il fournit un contrôle de sécurité au niveau du système qui permet au moteur de base de données de respecter le paramètre MIN_IOPS_PER_VOLUME
spécifié pour les pools de ressources, même si d’autres pools ont le paramètre MAX_IOPS_PER_VOLUME
défini sur illimité. Pour plus d’informations, consultez CREATE RESOURCE POOL.
DISABLE
Désactive resource governor. La désactivation du gouverneur de ressources a les résultats suivants :
- La fonction classifieur n’est pas exécutée.
- Toutes les nouvelles sessions utilisateur sont automatiquement classées dans le groupe de charge de travail
default
. - Les sessions système sont classées dans le groupe de charge de travail
internal
. - Tous les paramètres de groupe de charges de travail et de pool de ressources existants sont réinitialisés à leurs valeurs par défaut. Aucun événement n’est déclenché lorsque les limites sont atteintes.
- La surveillance normale du système n’est pas affectée.
- Les modifications de configuration de Resource Governor peuvent être apportées, mais les modifications ne prennent pas effet tant que resource governor n’est pas activé.
- Après avoir redémarré le moteur de base de données, resource governor ne charge pas sa configuration, mais utilise uniquement les
default
etinternal
groupes de charges de travail et pools de ressources.
RESET STATISTICS
Réinitialise les statistiques sur tous les groupes de charges de travail et pools de ressources exposés dans sys.dm_resource_governor_workload_groups et sys.dm_resource_governor_resource_pools.
Notes
ALTER RESOURCE GOVERNOR
ne peuvent pas être utilisés à l’intérieur d’une transaction utilisateur.
Le paramètre RECONFIGURE
fait partie de la syntaxe resource governor. Il ne doit pas être confondu avec RECONFIGURE, qui est une instruction DDL distincte.
Pour plus d’informations, consultez Resource Governor.
Autorisations
Nécessite l’autorisation CONTROL SERVER
.
Exemples
Activer resource governor
Lorsque SQL Server est installé, resource governor est désactivé. L’exemple suivant active resource governor. Une fois l’instruction exécutée, resource governor est activé et utilise des groupes de charges de travail et des pools de ressources intégrés.
ALTER RESOURCE GOVERNOR RECONFIGURE;
Affecter de nouvelles sessions au groupe par défaut
L’exemple suivant affecte toutes les nouvelles sessions au groupe de charge de travail default
en supprimant toute fonction classifieur existante de la configuration resource governor. Lorsqu’aucune fonction n’est désignée comme fonction classifieur, toutes les nouvelles sessions utilisateur sont affectées au groupe de charge de travail default
. Cette modification s'applique uniquement aux nouvelles sessions. Les sessions existantes ne sont pas affectées.
ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION = NULL);
ALTER RESOURCE GOVERNOR RECONFIGURE;
Créer et inscrire une fonction classifieur
L’exemple suivant crée une fonction classifieur nommée dbo.rg_classifier
dans la base de données master
. La fonction classifie chaque nouvelle session sur la base du nom d'utilisateur ou du nom d'application et assigne les demandes et requêtes de session à un groupe de charges de travail spécifique. Les sessions qui ne sont pas mappées aux noms d'utilisateur ou d'application spécifiés sont assignés au groupe de charges de travail par défaut. La fonction classifieur est ensuite enregistrée et la modification de configuration est appliquée.
USE master;
GO
CREATE FUNCTION dbo.rg_classifier()
RETURNS sysname
WITH SCHEMABINDING
AS
BEGIN
-- Declare the variable for the function return value.
DECLARE @grp_name AS sysname;
-- If the login name is 'sa', classify the session into the groupAdmin workload group
IF (SUSER_NAME() = 'sa')
SET @grp_name = 'groupAdmin';
-- Classify SSMS sessions into the groupAdhoc workload group
ELSE IF UPPER(APP_NAME()) LIKE '%MANAGEMENT STUDIO%'
SET @grp_name = 'groupAdhoc';
-- Classify SSRS sessions into groupReports workload group
ELSE IF UPPER(APP_NAME()) LIKE '%REPORT SERVER%'
SET @grp_name = 'groupReports';
-- Otherwise, classify the session into the default workload group
ELSE
SET @grp_name = 'default';
-- Return the name of the workload group
RETURN @grp_name;
END;
GO
-- Register the classifier function and update resource governor configuration
ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION = dbo.rg_classifier);
ALTER RESOURCE GOVERNOR RECONFIGURE;
Réinitialiser les statistiques resource governor
L'exemple suivant réinitialise tout le groupe de charges de travail et les statistiques de pool de ressources.
ALTER RESOURCE GOVERNOR RESET STATISTICS;
Configurer le paramètre MAX_OUTSTANDING_IO_PER_VOLUME
L’exemple suivant définit le paramètre MAX_OUTSTANDING_IO_PER_VOLUME
sur 20 E/S.
ALTER RESOURCE GOVERNOR WITH (MAX_OUTSTANDING_IO_PER_VOLUME = 20);
Contenu connexe
- Resource Governor
- exemples de configuration resource governor et les meilleures pratiques
- CREATE RESOURCE POOL
- ALTER RESOURCE POOL
- DROP RESOURCE POOL
- CREATE EXTERNAL RESOURCE POOL
- DROP EXTERNAL RESOURCE POOL
- ALTER EXTERNAL RESOURCE POOL
- CREATE WORKLOAD GROUP
- ALTER WORKLOAD GROUP
- DROP WORKLOAD GROUP
- sys.dm_resource_governor_workload_groups
- sys.dm_resource_governor_resource_pools