Partager via


Fonction de classification du gouverneur de ressources

Le processus de classification du gouverneur de ressources SQL Server affecte des sessions entrantes à un groupe de charge de travail en fonction des caractéristiques de la session. Vous pouvez adapter la logique de classification en écrivant une fonction définie par l’utilisateur, appelée fonction classifieur.

Catégorisation

Resource Governor prend en charge la classification des sessions entrantes. La classification est basée sur un ensemble de critères écrits par l’utilisateur contenus dans une fonction. Les résultats de la logique de fonction permettent à Resource Governor de classifier les sessions en groupes de charges de travail existants.

Remarque

Le groupe de charge de travail interne est rempli avec des requêtes destinées à une utilisation interne uniquement. Vous ne pouvez pas modifier les critères utilisés pour le routage de ces requêtes et vous ne pouvez pas classer les requêtes dans le groupe de charge de travail interne.

Vous pouvez écrire une fonction scalaire qui contient la logique utilisée pour affecter des sessions entrantes à un groupe de charge de travail. Avant de pouvoir utiliser cette fonction, vous devez effectuer les actions suivantes :

  • Créez et inscrivez la fonction à l’aide de l’instruction ALTER RESOURCE GOVERNOR. Pour plus d’informations, consultez ALTER RESOURCE GOVERNOR (Transact-SQL).

  • Mettez à jour la configuration Resource Governor à l’aide de l’instruction ALTER RESOURCE GOVERNOR avec le paramètre RECONFIGURE.

Après avoir créé la fonction et appliqué les modifications de configuration, le classifieur Resource Governor utilise le nom du groupe de charge de travail retourné par la fonction pour envoyer une nouvelle requête au groupe de charge de travail approprié.

Important

La session cliente peut expirer si la fonction de classification ne se termine pas dans le délai d’attente spécifié pour la connexion. Le délai d’attente de connexion est une propriété du client et, par conséquent, le serveur n’a pas connaissance d’un délai d’attente. Une fonction de classification longue peut laisser le serveur connecté via des connexions inactives pendant de longues périodes. Il est important de créer des fonctions de classifieur qui terminent l’exécution avant un délai d’attente de connexion.

La fonction définie par l’utilisateur présente les caractéristiques et comportements suivants :

  • La fonction définie par l’utilisateur est évaluée pour chaque nouvelle session, même lorsque le regroupement de connexions est activé.

  • La fonction définie par l’utilisateur fournit un contexte de groupe de charge de travail pour la session. Une fois l’appartenance au groupe déterminée, la session est liée au groupe de charge de travail pendant la durée de vie de la session.

  • Si la fonction définie par l'utilisateur retourne NULL, par défaut, ou le nom d'un groupe inexistant, la session reçoit le contexte du groupe de charge de travail par défaut. La session reçoit également le contexte par défaut si la fonction échoue pour une raison quelconque.

  • La fonction doit être définie avec l’étendue du serveur (base de données master).

  • La désignation de fonction définie par l’utilisateur classifieur prend effet uniquement après l’exécution de ALTER RESOURCE GOVERNOR RECONFIGURE.

  • Une seule fonction définie par l’utilisateur peut être désignée comme classifieur à la fois.

  • La fonction classifieur définie par l’utilisateur ne peut pas être supprimée ou modifiée, sauf si son état de classifieur est supprimé.

  • En l’absence d’une fonction classifieur définie par l’utilisateur, toutes les sessions sont classées dans le groupe par défaut.

  • Le groupe de charge de travail retourné par la fonction de classification est en dehors de l’étendue de la restriction de liaison de schéma. Par exemple, vous ne pouvez pas supprimer une table, mais vous pouvez supprimer un groupe de charges de travail.

Important

Nous vous recommandons d’activer la connexion d’administrateur dédié (DAC) sur le serveur. La DAC n’est pas soumise à la classification Resource Governor et peut être utilisée pour surveiller et dépanner une fonction classifieur. Pour plus d’informations, consultez Connexion de diagnostic pour les administrateurs de base de données. Si une DAC n’est pas disponible pour la résolution des problèmes, l’autre option consiste à redémarrer le système en mode mono-utilisateur. Bien que le mode mono-utilisateur ne soit pas soumis à la classification, il ne vous donne pas la possibilité de diagnostiquer la classification Resource Governor pendant son exécution.

Processus de classification

Dans le contexte de Resource Governor, le processus de connexion d’une session se compose des étapes suivantes :

  1. Authentification de connexion

  2. Exécution du déclencheur LOGON

  3. Catégorisation

Au démarrage de la classification, Resource Governor exécute la fonction classifieur et utilise la valeur retournée par la fonction pour envoyer des requêtes au groupe de charge de travail approprié.

Remarque

Des informations sur l’exécution de la fonction classifieur et des déclencheurs LOGON sont exposées dans sys.dm_exec_sessions et sys.dm_exec_requests.

Tâches de fonction de classification

Description de la tâche Sujet
Décrit comment créer et tester une fonction classifieur définie par l’utilisateur. Créer et tester une fonction de classifieur User-Defined

Voir aussi

gouverneur de ressources
Activer Resource Governor
Pool de ressources de Resource Governor
Groupe de charge de travail de Resource Governor
Configurer Resource Governor à l’aide d’un modèle
Afficher les propriétés du gouverneur de ressources