Partager via


Fonction classifieur du gouverneur de ressources

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

Classification

Le gouverneur de ressources prend en charge la classification des sessions entrantes. La classification est basée sur un jeu de critères écrits par l'utilisateur et contenus dans une fonction. Les résultats de la logique de la fonction permettent au gouverneur de ressources de classer des sessions en groupes de charges de travail existants.

[!REMARQUE]

Le groupe de charges de travail interne est rempli avec les demandes destinées à un usage interne uniquement. Vous ne pouvez pas modifier les critères utilisés pour acheminer ces demandes et vous ne pouvez pas classer de demandes dans le groupe de charges de travail interne.

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

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

  • Mettre à jour la configuration du gouverneur de ressources à l'aide de l'instruction ALTER RESOURCE GOVERNOR avec le paramètre RECONFIGURE.

Une fois la fonction créé et les modifications de configuration appliquées, le classifieur du gouverneur de ressources utilise le nom du groupe de charges de travail retourné par la fonction pour envoyer une nouvelle demande 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é cliente et à ce titre, le serveur n'en a pas connaissance. Une fonction classifieur de longue durée peut entraîner des connexions orphelines au niveau du serveur pendant de longues périodes. Il est important de créer des fonctions classifieur dont l'exécution se termine avant l'expiration d'un délai de connexion.

La fonction définie par l'utilisateur a les caractéristiques et les 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 donne le contexte de groupe de charges de travail pour la session. Une fois l'appartenance aux groupes déterminée, la session est liée au groupe de charges de travail pour la durée de la session.

  • Si la fonction définie par l'utilisateur retourne NULL, la valeur par défaut ou le nom de groupe inexistant, elle se voit attribuer le contexte de groupe de charges de travail par défaut. La session se voit attribuer aussi le contexte par défaut si la fonction échoue pour une raison donnée.

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

  • La désignation de la fonction classifieur définie par l'utilisateur entre seulement en vigueur après l'exécution de l'instruction ALTER RESOURCE GOVERNOR RECONFIGURE.

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

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

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

  • Le groupe de charges de travail retourné par la fonction classifieur est hors de la portée de la restriction de liaison du schéma. Par exemple, vous ne pouvez pas supprimer une table mais vous pouvez supprimer un groupe de charges de travail.

Important

L'activation de la connexion administrateur dédiée (DAC) sur le serveur est conseillée. La connexion administrateur dédiée n'est pas soumise à la classification du gouverneur de ressources 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. L'autre solution, lorsqu'une connexion administrateur dédiée n'est pas disponible pour la résolution des problèmes, consiste à redémarrer le système en mode mono-utilisateur. Le mode mono-utilisateur n'est pas sujet à la classification ; toutefois, il ne vous permet pas d'effectuer un diagnostic de la classification du gouverneur de ressources s'il est en cours d'exécution.

Processus de classification

Dans le contexte du gouverneur de ressources, le processus de connexion pour une session comprend les étapes suivantes :

  1. authentification des connexions ;

  2. exécution des déclencheurs LOGON ;

  3. classification.

Lorsque la classification commence, le gouverneur de ressources exécute la fonction classifieur et utilise la valeur retournée par la fonction pour envoyer des demandes au groupe de charges de travail approprié.

[!REMARQUE]

Les informations relatives à 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

Rubrique

Décrit comment créer et tester une fonction définie par l'utilisateur classifieur.

Créer et tester une fonction classifieur définie par l'utilisateur

Voir aussi

Concepts

Gouverneur de ressources

Activer le gouverneur de ressources

Pool de ressources du gouverneur de ressources

Groupe de charge de travail du gouverneur de ressources

Configurer le gouverneur de ressources à l'aide d'un modèle

Afficher les propriétés du gouverneur de ressources