Partager via


Option max worker threads

Utilisez l'option max worker threads pour définir le nombre de threads de travail disponibles pour les processus MicrosoftSQL Server. SQL Server utilise les services de thread natifs des systèmes d'exploitation Microsoft Windows 2000 et Windows Server 2003 pour qu'un ou plusieurs threads prennent en charge chaque réseau que SQL Server prend en charge simultanément, qu'un autre thread prenne en charge les points de vérification de base de données et qu'un pool de threads gère tous les utilisateurs.

Objectif de l'option max worker threads

Le regroupement de threads permet d'optimiser les performances lorsque de nombreux clients sont connectés au serveur. Habituellement, un thread de système d'exploitation séparé est créé pour chaque demande de requête. Cependant, s'il existe des centaines de connexions au serveur, l'utilisation d'un thread par demande de requête peut consommer de grandes quantités de ressources système. L'option max worker threads permet à SQL Server de créer un pool de threads de travail afin de servir un grand nombre de demandes de requête, ce qui améliore les performances.

Calcul du nombre maximal de threads de travail

La valeur par défaut de max worker threads (0) autorise SQL Server à configurer automatiquement le nombre de threads de travail au démarrage. Ce paramètre convient à la plupart des systèmes. Cependant, selon votre configuration système, l'attribution d'une valeur spécifique à l'option max worker threads permet d'accroître les performances.

Le tableau ci-dessous montre le nombre maximal de threads de travail automatiquement configuré pour différentes combinaisons d'UC et de versions de SQL Server.

Nombre d'unités centrales

Ordinateur 32 bits

Ordinateur 64 bits

<= 4 processeurs

256

512

8 processeurs

288

576

16 processeurs

352

704

32 processeurs

480

960

[!REMARQUE]

Nous vous conseillons un maximum de 1 024 pour la version 32 bits de SQL Server et de 2 048 pour la version 64 bits de SQL Server.

Lorsque le nombre de demandes de requête est inférieur au nombre défini dans l'option max worker threads, un thread traite chaque demande de requête. En revanche, si le nombre de demandes de requête dépasse la valeur définie pour l'option max worker threads, SQL Server regroupe les threads de travail afin que le prochain thread de travail disponible puisse traiter la demande.

Mise à niveau à partir de SQL Server 2000

La valeur du paramètre par défaut de l'option max worker threads dans SQL Server 2000 était 255. La mise à niveau d'une instance du Moteur de base de donnéesSQL Server 2000 vers une version plus récente conserve la valeur de configuration de l'option max worker threads. Lors d'une mise à niveau, nous vous conseillons de remplacer la valeur max worker threads de la nouvelle instance par 0, pour permettre au Moteur de base de données de calculer le nombre optimal de threads.

Définition du nombre maximal de threads de travail

L'option max worker threads est une option avancée. Si vous utilisez la procédure stockée système sp_configure pour changer ce paramètre, vous ne pouvez modifier l'option max worker threads que si la valeur 1 a été attribuée à l'option show advanced options. Le système doit être redémarré pour que le nouveau paramètre entre en vigueur.

[!REMARQUE]

Lorsque tous les threads de travail traitent de longues requêtes, SQL Server peut sembler ne plus répondre jusqu'à ce qu'un thread de travail soit terminé et devienne disponible. Même s'il ne s'agit pas d'une défaillance, cela peut être parfois indésirable. Si un processus semble ne pas répondre et si aucune nouvelle requête n'est traitée, connectez-vous à SQL Server à l'aide de la connexion administrateur dédiée et terminez le processus. Pour éviter cette situation, augmentez la valeur de l'option max worker threads.