Configuration du serveur : seuil de coût pour le parallélisme

s’applique à :SQL ServerAzure SQL Managed Instance

Cet article décrit comment configurer l’option de configuration du serveur cost threshold for parallelism dans SQL Server à l’aide de SQL Server Management Studio ou Transact-SQL.

À propos du seuil de coût pour le parallélisme

L’option cost threshold for parallelism spécifie le seuil auquel SQL Server considère les plans parallèles sur les ordinateurs avec plusieurs processeurs logiques. L’option cost threshold for parallelism peut être définie sur n’importe quelle valeur comprise entre 0 et 32 767.

Le coût est la somme des coûts d’opérateur estimés dans un plan de requête (par exemple, processeur et E/S). Il s’agit d’une mesure relative utilisée uniquement pour la sélection de plan ; elle ne mesure pas le runtime réel.

Certains composants Transact-SQL peuvent empêcher un plan parallèle. Par exemple, les fonctions scalaires définies par l’utilisateur (UDF) non incorporables en ligne, les modifications des variables de type table et certains appels système. SQL Server évalue les alternatives parallèles uniquement lorsque le coût estimé du meilleur plan série dépasse la cost threshold for parallelism valeur, puis peut choisir un plan parallèle moins cher.

Limites

SQL Server ignore la valeur cost threshold for parallelism dans les conditions suivantes :

  • L'ordinateur ne dispose que d'un seul processeur logique.

  • Un seul processeur logique est disponible pour SQL Server en raison de l’option de configuration affinity mask.

  • L’option de configuration du max degree of parallelism serveur est définie sur 1.

Recommandations

Cette option est une option avancée et doit être modifiée uniquement par un professionnel de base de données expérimenté.

La valeur par défaut de 5 est un point de départ, pas une recommandation. Sur les systèmes SQL Server modernes, l’augmenter peut aider à permettre à de plus petites requêtes OLTP de continuer à s’exécuter avec des plans d’exécution en série. Utilisez de petits incréments et observez un cycle d’activité complet avant d’autres modifications. Effectuez des tests d’application avec des valeurs supérieures et inférieures si nécessaire, afin d’optimiser les performances de l’application.

Note

Dans Azure SQL Database, vous ne pouvez pas définir cost threshold for parallelism. Utilisez MAXDOP plutôt pour contrôler le parallélisme. Pour plus d’informations, consultez Modification de MAXDOP par défaut dans Azure SQL Database et Azure SQL Managed Instance.

Dans certains cas, un plan parallèle peut être choisi même si le coût du plan de la requête est inférieur à la valeur actuelle cost threshold for parallelism . La décision d’utiliser un plan parallèle ou série est basée sur une estimation des coûts fournie précédemment dans le processus d’optimisation. Pour plus d’informations, consultez le Guide d’architecture de traitement des requêtes.

Remarques

Pour voir si l’option de configuration du cost threshold for parallelism serveur est définie trop élevée ou trop faible pour votre charge de travail, recherchez les indicateurs suivants.

Seuil de coût pour le paramètre de parallélisme Descriptif
Trop faible - Trop de requêtes peu gourmandes en CPU s’exécutent en parallèle.

- Dans Magasin des requêtes, de nombreux plans ont is_parallel_plan défini sur 1.

- CXPACKET et CXCONSUMER dominent les statistiques de type d’attente. Vous pouvez également observer des attentes THREADPOOL et SOS_SCHEDULER_YIELD.
Trop élevé - Un nombre insuffisant de requêtes gourmandes en CPU de la charge de travail s’exécutent en parallèle, et l’utilisation du processeur est par conséquent supérieure au niveau optimal.

- SOS_SCHEDULER_YIELD domine les statistiques de type d’attente.

autorisations

Les autorisations d’exécution de sp_configure , sans paramètre ou avec le premier paramètre uniquement, sont accordées par défaut à tous les utilisateurs. Pour exécuter sp_configure avec les deux paramètres afin de modifier une option de configuration ou pour exécuter l’instruction RECONFIGURE, un utilisateur doit disposer de l’autorisation ALTER SETTINGS au niveau du serveur. L’autorisation ALTER SETTINGS est implicitement détenue par les rôles serveur fixes sysadmin et serveradmin.

Utiliser SQL Server Management Studio

  1. Dans l’Explorateur d’objets, cliquez avec le bouton droit sur un serveur et sélectionnez Propriétés.

  2. Cliquez sur le nœud Avancé.

  3. Sous Parallélisme, modifiez l’option cost threshold for parallelism en fonction de la valeur souhaitée. Tapez ou sélectionnez une valeur comprise entre 0 et 32 767.

Utiliser Transact-SQL

Cet exemple montre comment utiliser sp_configure pour définir la valeur de cost threshold for parallelism sur 20.

USE master;
GO

EXECUTE sp_configure 'show advanced options', 1;
GO

RECONFIGURE;
GO

EXECUTE sp_configure 'cost threshold for parallelism', 20;
GO

RECONFIGURE;
GO

EXECUTE sp_configure 'show advanced options', 0;
GO

RECONFIGURE;
GO

Pour plus d’informations, consultez l’article Options de configuration du serveur.

Suivi : Après avoir configuré l’option de seuil de coût pour le parallélisme

Le paramètre prend effet immédiatement sans redémarrage du serveur.