J'ai une procédure stockée qui contient de nombreuses commandes code> Sélectionnez code>.
au lieu de mettre l'option ex. p> (maxdop 8) code> à la fin de chaque commande SELECT, y a-t-il un manière que je puisse le définir au début de la procédure stockée et la supprimer à la fin, sans le régler sur le serveur? p>
3 Réponses :
Malheureusement, non. P>
Vos options sont soit définissez au niveau du serveur à l'aide de Cela dit, les options de requête doivent être un dernier recours et si vos requêtes sont mal performantes, il peut y avoir un problème sous-jacent. P>
SP_Configure 'Max degré de parallélisme' Code> ou mettez à jour chaque instruction SELECT dans votre procédure stockée pour utiliser l'option (maxDop 8) code>. p>.
Heureusement non. La façon recommandée de faire de telles choses est de ne pas les faire du tout. La requête écrasante ne devrait être que l'exception rare em> lorsque SQL Server choisit vraiment un mauvais plan, pas la règle. Et lorsqu'un plan de requête doit être exécuté, l'action appropriée consiste à utiliser des guides de plan de requête: P>
La chose la plus importante à comprendre est que les astuces de requête sont les options de la conception em> (elles nécessitent code em> modifications pour modifier les requêtes) et les abuser considérablement réduit considérablement la maintenabilité future de L'application (lorsque le matériel change, ou sur différents sites de déploiement, l'indice sera faux). En revanche, les guides de plan de requête sont les options de temps de déploiement em>, ils ne nécessitent pas de changement de code et peuvent être personnalisés sur chaque site déployé, en fonction de la capacité matérielle et de la charge de travail sur site. P>
L'utilisation de toutes les notes est rarement recommandée, mais nous les avons encore disponibles pour une raison ou une autre et vous voudrez peut-être réfléchir pourquoi;) ... Désolé, mais cette réponse n'est aucune aide.
J'aimerais qu'il y ait un moyen de définir MaxDop pour la portée de la procréation, mais je suis d'accord, il n'y a aucun moyen de le faire. P>
Pour contrer certains des conseils ci-dessus, il existe d'excellentes raisons d'utiliser l'indice MaxDop, telles que pour les constructions d'index après les heures de travail, les mises à jour ou les données de données dans un environnement multi-processeur, mais où MAXDOP est réglé plus bas que le nombre de processeurs à Aidez l'activité d'équilibre pendant les heures occupées «pic», telles que des heures normales d'ouverture. Contrairement à certaines astuces, telles que les indices d'index, cela ne forcera pas vos processus à utiliser plus de threads, mais cela lui permettra de le faire si le plan choisit donc. p>
Certaines constructions d'index exécuteront près de deux fois plus vite si vous doublez les fils, il existe donc un véritable avantage. P>
[Plus 1] pour reconnaître des cas de bord spécifiques que cette option est bénéfique.
Pourquoi
MaxDop 8? Code> Avez-vousMax degré de parallélisme 1 code> au niveau du serveur? Quel est le problème avec la procédure stockée que vous ressentez la nécessité d'ajouter des options de requête?Quel (s) numéro (s) essayez-vous de corriger ce paramètre? Je suppose qu'il peut y avoir une meilleure façon si vous pouvez poster plus de détails (y compris le code).