La procédure sp_configure permet de régler les principaux paramètres pour piloter la gestion des processeurs. De plus le tag MAXDOP permet de limiter l’usage de plusieurs processeurs. Nous avons vu que SQL Server utilisait peu l’OS puisqu’il utilise son propre OS "SQL OS". Nous en avions déduit que contrairement à
4.3 – Réglages au niveau des processeurs

d’autres applications (IIS par exemple) il était parfaitement logique d’assigner 3/4 des ressources RAM à SQL Server et 1/4 à l’OS (swith /3GB dans le fichier boot.ini). Il en est de même pour les processeurs.
SQL Server installé sur une machine dédiée n’a besoin que de 75 % des processeurs physiques. Ainsi, à partir du quadri processeur, il est intéressant de dédier à SQL Server, certains processeurs pour laisser les autres à disposition de l’OS. La répartition de fait à l’aide du paramètre "affinity mask" de la procédure stockée sp_configure. Un masque d’affinité est une combinaison de bits qui indique par un 1 si le processeur de rang n est utilisé par SQL Server, sinon à 0 c’est l’OS qui l’utilisera. Ainsi pour indiquer à SQL Server que les processeurs 0, 1 et 2 lui sont réservés (et que par conséquent le processeur 3 sur un système quadri est utilisé par l’OS) alors il faut donner au paramètre "affinity mask" la valeur 7 obtenue par la somme de 20 + 21 + 22. Attention : dédiez toujours les processeurs de poids faible (0, 1, 2…) à SQL Server et ceux de poids forts (… n-2, n-1, n) à l’OS. En effet, le processeur de poids le plus fort est la plupart du temps utilisé par les cartes réseaux. Or c’est la seule action que SQL dédie à l’OS !
Même si vous avez dédié à SQL Server 6 processeurs sur 8, vous pouvez exiger qu’aucune requête ne prenne plus de 4 processeurs par exemple. Cela fluidifiera les petites requêtes au détriment du temps de réponse des grosses. C’est possible à l’aide du paramètre "max degree of parallelism" modifiable par la procédure stockée sp_configure. Vous pouvez aussi définir le coût minimum18 à partir duquel le parallélisme va entrer en jeu. C’est le paramètre "cost threshold for parallelism" de la même procédure. N’oubliez pas qu’un traitement parallèle engendre un travail plus important qu’en série. Il y a donc gain sur la durée, mais perte sur la consommation des ressources. Enfin, le tag MAXDOP peut être utilisé dans une requête pour lui indiquer de ne pas utiliser plus de n processeurs pour être traité. Cela se fait dans la clause OPTION de la requête, clause spécifique à SQL Server.
Téléchargez cette ressource

En route vers RISE with SAP et Atos
Quels bénéfices associer à l’adoption de l'ERP Cloud de SAP ? Fort de la migration réussie de leur SI vers l’ERP Cloud de SAP, les experts Atos ont élaboré un guide spécialement conçu pour les décideurs IT et métiers afin de leur permettre d’évaluer précisément les avantages tangibles associés au déploiement Cloud Rise with SAP.