Présentation du gouverneur de ressources
Le gouverneur de ressources est une nouvelle technologie introduite par SQL Server 2008 qui permet de gérer la charge de travail et les ressources SQL Server en spécifiant des limites concernant la consommation de ressources par les requêtes entrantes. Du point de vue du gouverneur de ressources, la charge de travail est un ensemble de requêtes de taille similaire qui peuvent ou devraient être traitées comme une entité unique. Bien que cela ne soit pas indispensable, plus le modèle d'utilisation des ressources d'une charge de travail est uniforme, plus il est avantageux d'utiliser le gouverneur de ressources. Les limites de ressources peuvent être reconfigurées en temps réel avec un impact négligeable sur les charges de travail en cours d'exécution.
Dans un environnement où il existe plusieurs charges de travail distinctes sur le même serveur, le gouverneur de ressources permet de différencier ces charges de travail et d'allouer des ressources partagées en fonction de la demande, selon les limites que vous spécifiez. Ces ressources sont l'UC et la mémoire.
Le gouverneur de ressources est disponible uniquement dans les éditions Enterprise, Developer et Evaluation de SQL Server.
Types de problèmes de ressource
Le gouverneur de ressources a été conçu pour résoudre les types des problèmes de ressource suivants, communément rencontrés dans un environnement de base de données :
Pertes de contrôle de requêtes sur le serveur. Dans ce scénario, une requête qui consomme d'importantes ressources peut utiliser la plupart voire la totalité des ressources du serveur.
Exécution de charge de travail imprévisible. Dans ce scénario, les applications simultanées exécutées sur le même serveur ont des charges de travail de taille et de type différents. Par exemple, il peut s'agir de deux applications d'entrepôt de données ou d'une combinaison d'applications OLTP et d'entrepôt de données. Ces applications ne sont pas isolées les unes des autres et la concurrence entre les ressources qui en résulte se traduit par une exécution imprévisible de la charge de travail.
Définition du niveau de priorité d'une charge de travail. Dans ce scénario, une charge de travail est autorisée à être traitée plus rapidement qu'une autre ou son exécution est garantie en cas de conflits de ressources. Le gouverneur de ressources permet d'assigner un paramètre d'importance relative à chaque charge de travail.
Tous les scénarios précédents nécessitent de pouvoir faire la distinction entre les charges de travail d'une manière ou d'une autre. Le gouverneur de ressources est en mesure d'effectuer les opérations suivantes :
Classifier les connexions entrantes et aiguiller leurs charges de travail vers un groupe spécifique.
Surveiller l'utilisation des ressources pour chaque charge de travail dans un groupe.
Créer des pools de ressources et définir des limites spécifiques pour chaque pool en matière d'utilisation de l'UC et d'allocation de la mémoire. Cela élimine ou réduit les risques de pertes de contrôle de requêtes.
Possibilité d'associer des charges de travail à un pool de ressources spécifique.
Identifier et définir des priorités pour les charges de travail.
Contraintes du gouverneur de ressources
Cette version du gouverneur de ressources est soumise aux contraintes suivantes :
La gestion des ressources est limitée au moteur de base de données SQL Server. Le gouverneur de ressources ne peut pas être utilisé pour Analysis Services, Integration Services et Reporting Services.
Il n'y a aucune surveillance ni gestion des charges de travail entre instances SQL Server.
Les limites spécifiées s'appliquent à la bande passante de l'UC et à la mémoire gérées par SQL Server.
Charges de travail OLTP. Le gouverneur de ressources peut gérer les charges de travail OLTP mais ces types de requêtes, qui sont en général très courtes, ne restent pas toujours assez longtemps sur l'UC pour que des contrôles de bande passante soient appliqués. Cela peut biaiser les statistiques retournées pour le pourcentage d'utilisation de l'UC.