Option locks

Utilisez l'option locks pour définir le nombre maximal de verrous disponibles et limiter ainsi la quantité de mémoire que le moteur de base de données utilise pour eux. La valeur par défaut est 0 ; elle permet au moteur de base de données d'allouer et de libérer des structures de verrous de manière dynamique en fonction des modifications de la configuration requise.

Important

Cette fonctionnalité sera supprimée dans une prochaine version de Microsoft SQL Server. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement, et modifiez dès que possible les applications qui utilisent actuellement cette fonctionnalité.

Lorsque le serveur est démarré avec la valeur 0 affectée à l'option locks, le gestionnaire de verrous acquiert suffisamment de mémoire auprès du moteur de base de données pour un pool initial de 2 500 structures de verrous. Lorsque ce pool est épuisé, le gestionnaire de verrous redemande de la mémoire.

En règle générale, si une quantité de mémoire supérieure à celle du pool actuel du moteur de base de données est requise pour les verrous, et s'il reste de la mémoire sur l'ordinateur (c'est-à-dire si le seuil de l'option max server memory n'a pas été atteint), le 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. Le pool de verrous dynamiques n'acquiert pas plus de 60 pour cent de la mémoire allouée au moteur de base de données. Une fois que le pool de verrous a atteint 60 pour cent de la mémoire acquise par une instance du 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 empêcher SQL Server d'allouer des ressources de verrous de façon dynamique. Lorsque l'option locks a une valeur différente de 0, le 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 l'escalade de verrous. Lorsque l'option locks a la valeur 0, l'escalade de verrous intervient quand la mémoire utilisée par les structures de verrous actuelles atteint 40 pour cent du pool de mémoire du moteur de base de données. Lorsque l'option locks a une valeur différente de 0, l'escalade de verrous intervient quand 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 l'option show advanced options la valeur 1. Le paramétrage prend effet une fois le serveur redémarré.