Nous mettrons à jour notre Politique de confidentialité prochainement. En voici un aperçu.

SQL Server 2016 : Maintenance des progiciels tiers

Implémenter le gouverneur de ressources

Testez gratuitement nos 1344 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
Créez une fonction de classification pour le gouverneur de ressources et testez le fonctionnement avec une session classifiée.
04:51

Transcription

Nous voici de retour dans la configuration des propriétés du gouverneur de ressources. Je vais faire « OK » pour l’instant. J’ai créé mon pool, mon groupe de charge de travail. Mais il me manque une fonction de classification. Je vous en ai préparée une ici, qui est assez simple. Il faut que je crée une fonction. Donc, comme ceci. Cette fonction doit être créée dans « Master ». Vous voyez ici, je suis dans « Master ». Le nom ici importe peu. C’est ce qu’on appelle une « UDF », « une fonction utilisateur ». C’est une « fonction scalaire », c'est-à-dire qu’elle va retourner une seule valeur et vous le voyez ici, il faut que je retourne à type de donnée qui s’appelle « Sysname ». « Sysname », c’est un « NVARCHAR (128) », c’est la taille d’un identifiant SQL, le nom d’une table, le nom d’un objet, et le nom d’un groupe de charge de travail. Je dois créer ma fonction « WITH SCHEMABINDING », et dans le corps de la fonction, je dois retourner un groupe de charge de travail. Un groupe de charge de travail, vous vous souvenez. C'est-à-dire que si je reviens ici, il faut que retourne à un nom qui est ici, par exemple « rapports ». Parce que dès que j’aurais classifié dans un groupe de charge de travail, eh bien il appartiendra à son « pool de ressource ». Et il prendra en compte à la fois ces options comme celle-ci, et ces options comme celle-ci, puisqu’il fait partie du « pool de ressource ». Donc, ce que je fais, c’est que je teste, par exemple, avec cette fonction qui me retourne, « l’Application name » de la session, si cet « APP_NAME » est « rapports ». Donc, je peux mettre comme ça en majuscule parce que je crois que c’est ce que j’ai mis, on peut le vérifier ici. Oui, en majuscule, ça n’a pas d’importance. Cela dit, parce que ce n’est pas normalement « case sensitive », ce n’est pas sensible à la casse, mais bon. Ici, je vais juste être propre, « rapports ». C’est juste par acquis de conscience mais ce n’est pas très, très important. Donc je dis, si l’APP_NAME est « rapports », je retourne « rapports », sinon je retourne « Default ». Et ainsi je vais classifier chaque session. Lorsque quelqu’un va se connecter, cette fonction va se déclencher, le « gouverneur de ressource » va l’appeler. Il va donc savoir dans quel groupe de charge de travail il va classifier la connexion qui s’ouvre, et elle aura les limitations que j’ai défini dans le groupe de charge de travail et son « pool de ressource ». Je crée la fonction et ensuite je retourne dans le « gouverneur de ressource ». Je vais choisir une « fonction classification », donc il va me lister les fonctions qui se trouvent dans « Master » et dont la signature correspond à ce qui est nécessaire, ça retourne un « sysname », c’est avec « SCHEMABINDING ». Et voilà. Donc, que vais-je faire ? Reprendre cette session, me reconnecter, vérifier que j’ai bien un « Application name », et puis lancer ma requête à nouveau. Il faut que je sois au bon endroit bien sûr. Et cette requête va probablement s’exécuter un peu plus lentement parce qu’elle est classifiée dans mon groupe de charge de travail. Alors une question, est-ce que je peux vérifier si ça a marché ? Oui, vous pouvez faire des requêtes sur des « vues systèmes ». Alors, j’ai cherché rapidement sur Google. Par exemple, j’ai trouvé ici un type, savoir quelles sont les sessions qui sont assignées à des groupes de charge de travail. Donc je copie la requête. C’est juste pour ne pas avoir la taper mais je vais vous montrer ici le résultat. On part de « sys.dm_exec_sessions » qui liste les sessions actuelles. On fait une jointure sur des vues qui nous montrent quels sont les groupes de charge de travail, et les « pools de ressource » qui sont définis. Et puis on regarde les sessions. Alors, revenons ici sur notre session. On voit que notre « Process ID », il est ici, et on le voit, est 68. C’est notre ID de session dans SQL server. On va vérifier ici, si 68... alors, on a toutes les sessions systèmes, on s’en fiche. Mais on va spécifiquement regarder 68 et vous voyez qu’on est bien dans « rapports ». Donc ici, on en a deux. La session 65 et la session 68 qui sont tous les deux dans le groupe « rapports » et le « pool rapports ». Donc, ça fonctionne. Et maintenant, mes « requêtes de rapports » vont beaucoup moins troubler les requêtes plus importantes, qui sont des requêtes purement opérationnelles. Et ces requêtes opérationnelles, elles, on a besoin qu’elles s’exécutent le plus rapidement possible.

SQL Server 2016 : Maintenance des progiciels tiers

Exploitez les fonctionnalités de SQL Server afin de diminuer les problèmes, et améliorer les performances des progiciels. Faites face à ce problème très souvent rencontré !

1h16 (15 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
Spécial abonnés
Date de parution :4 août 2016

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !