Configuration du serveur : verrous

S'applique à : SQL Server

Cet article explique comment configurer l’option de configuration du locks serveur dans SQL Server à l’aide de SQL Server Management Studio ou de Transact-SQL. L’option locks définit le nombre maximal de verrous disponibles, ce qui limite la quantité de mémoire utilisée par SQL Server Moteur de base de données pour ces verrous. 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 version future de SQL Server. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement, et prévoyez de modifier les applications qui utilisent actuellement cette fonctionnalité.

Recommandations

Seul un administrateur de base de données qualifié ou un spécialiste agréé doit changer cette option avancée SQL Server.

Lorsque le serveur est démarré avec locks la valeur définie0, le gestionnaire de verrous acquiert suffisamment de mémoire à partir de l’Moteur de base de données pour un pool initial de 2 500 structures de verrous. Comme le pool de verrous est épuisé, plus de mémoire est acquise pour le pool.

En règle générale, si plus de mémoire est nécessaire pour le pool de verrous que ce qui est disponible dans le pool de mémoire Moteur de base de données, et que la mémoire de l’ordinateur est plus élevée (le max server memory seuil n’a pas été atteint), l’Moteur de base de données alloue de la mémoire dynamiquement pour satisfaire la demande de verrous. Toutefois, si l’allocation de cette mémoire entraîne la pagination au niveau du système d’exploitation (par exemple, si une autre application s’exécute sur le même ordinateur qu’une instance de SQL Server et l’utilisation de cette mémoire), un espace de verrouillage supplémentaire n’est pas alloué. Le pool de verrous dynamiques n’acquiert pas plus de 60 % de la mémoire allouée au Moteur de base de données. Une fois que le pool de verrous atteint 60 % de la mémoire acquise par une instance de l’Moteur de base de données, ou qu’aucune mémoire supplémentaire n’est disponible sur l’ordinateur, d’autres demandes de verrous génèrent une erreur.

La configuration recommandée est l'autorisation de l'utilisation dynamique des verrous par SQL Server . Toutefois, vous pouvez définir locks et remplacer la possibilité de SQL Server d’allouer dynamiquement des ressources de verrouillage. Lorsqu’elle locks est définie sur une valeur autre que 0, la Moteur de base de données ne peut pas allouer plus de verrous que la valeur spécifiée dans locks. Augmentez cette valeur si SQL Server affiche un message indiquant 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 affecte également le moment où l’escalade de verrous se produit. Lorsque locks la valeur est définie0, l’escalade de verrous se produit lorsque la mémoire utilisée par les structures de verrou actuelles atteint 40 % du pool de mémoires Moteur de base de données. Quand locks n’est pas défini 0sur , l’escalade de verrous se produit lorsque le nombre de verrous atteint 40 % de la valeur spécifiée pour locks.

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, tapez la valeur souhaitée pour l’option locks .

    Utilisez l’option locks pour définir le nombre maximal de verrous disponibles, ce qui limite la quantité de mémoire utilisée par SQL Server.

Utiliser Transact-SQL

  1. Connectez-vous au Moteur de base de données.

  2. Dans la barre d’outils standard, sélectionnez Nouvelle requête.

  3. Copiez et collez l’exemple suivant dans la fenêtre de requête, puis sélectionnez Exécuter. Cet exemple montre comment utiliser sp_configure pour attribuer à l’option locks de définition du nombre de verrous disponibles pour tous les utilisateurs la valeur 20000.

    USE master;
    GO
    
    EXECUTE sp_configure 'show advanced options', 1;
    GO
    
    RECONFIGURE;
    GO
    
    EXECUTE sp_configure 'locks', 20000;
    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 verrous

Le serveur doit être redémarré pour que le paramètre puisse être effet.