Partager via


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 ou CREATE | ALTER | DROP RESOURCE POOL ou CREATE | 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 et internal 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);