Option locks

Utilisez l'option locks pour définir le nombre maximal de verrous disponibles et limiter ainsi la quantité de mémoire qu'utilise Moteur de base de données avec les verrous. La valeur par défaut est 0, ce qui permet à Moteur de base de données d'allouer et de libérer dynamiquement des structures de verrous en modifiant la configuration requise.

Lorsque vous démarrez le serveur avec la valeur 0 affectée à l'option locks, le gestionnaire de verrous acquiert suffisamment de mémoire de Moteur de base de données pour un pool initial de 2 500 structures de verrous. Lorsque la réserve est épuisée, le gestionnaire de verrous redemande de la mémoire.

En règle générale, si une quantité de mémoire supérieure à celle située dans la réserve Moteur de base de données actuelle est requise pour les verrous, et s'il reste de la mémoire du serveur disponible (c'est-à-dire si le seuil de l'option max server memory n'a pas été franchi), Moteur de base de données alloue dynamiquement de la mémoire afin de satisfaire la demande de verrous. Cependant, si l'allocation de mémoire entraîne une pagination au niveau du système d'exploitation (par exemple, si une autre application est exécutée sur le même ordinateur en tant qu'instance de SQL Server et utilise cette mémoire), aucun espace supplémentaire n'est alloué pour les verrous. La réserve de verrous dynamiques n'alloue pas plus de 60 pour cent de la mémoire allouée à Moteur de base de données. Une fois que la réserve de verrous occupe 60 pour cent de la mémoire acquise par une instance de Moteur de base de données, ou qu'il n'y a plus de mémoire disponible sur l'ordinateur, les demandes de verrous génèrent une erreur.

La configuration recommandée est l'autorisation de l'utilisation dynamique des verrous par SQL Server. Cependant, vous pouvez définir l'option locks et annuler l'allocation dynamique de ressources de verrous par SQL Server. Lorsque l'option locks a une autre valeur que 0, Moteur de base de données ne peut pas allouer plus de verrous que ce nombre. Augmentez cette valeur si SQL Server affiche un message vous informant que vous avez dépassé le nombre de verrous disponibles. Puisque chaque verrou consomme de la mémoire (96 octets par verrou), il est possible que l'augmentation de cette valeur vous oblige à augmenter la mémoire destinée au serveur.

L'option locks influence également le moment où a lieu la promotion de verrous. Lorsque l'option locks a la valeur 0, la promotion a lieu lorsque la mémoire utilisée par les structures de verrous atteint 40 pour cent de la réserve de mémoire Moteur de base de données. Lorsque l'option locks a une valeur autre que 0, la promotion a lieu lorsque le nombre de verrous atteint 40 pour cent de cette valeur.

L'option locks est une option avancée. Si vous utilisez la procédure stockée système sp_configure pour changer sa valeur, vous ne pouvez modifier l'option locks que si la valeur 1 a été attribuée à l'option show advanced options. Le paramètre prend effet après l'arrêt et le redémarrage du serveur.

Sur les ordinateurs qui utilisent l'accès mémoire non uniforme (NUMA), le paramètre relatif aux verrous est défini par nœud NUMA ; par conséquent, un paramètre de 10 000 sur un ordinateur à quatre nœuds autorise 40 000 verrous. Le nombre de nœuds NUMA peut être déterminé à l'aide de la requête suivante :

SELECT COUNT(DISTINCT parent_node_id)
FROM sys.dm_os_schedulers 
WHERE parent_node_id <> 32

Voir aussi

Concepts

Verrouillage et gestion des versions de ligne
Promotion de verrous (moteur de base de données)
Définition des options de configuration de serveur

Autres ressources

RECONFIGURE (Transact-SQL)
sp_configure (Transact-SQL)

Aide et Informations

Assistance sur SQL Server 2005