Partager via


Verrouillage dynamique

L'utilisation de verrous de bas niveau, comme les verrous de ligne, augmente la concurrence car elle diminue la probabilité d'avoir deux transactions qui demandent des verrous sur les mêmes données en même temps. L'utilisation de verrous de bas niveau augmente également le nombre de verrous et les ressources nécessaires à leur gestion. Les verrous de table ou de page de haut niveau réduisent la charge mais au détriment de la concurrence.

Diagramme affichant le coût par rapport à la granularité

Le MicrosoftMoteur de base de données SQL Server utilise une stratégie de verrouillage dynamique pour déterminer les verrous les plus rentables. Lorsqu'une requête est exécutée, le Moteur de base de données détermine automatiquement les verrous les plus appropriés sur la base des caractéristiques du schéma et de la requête. Par exemple, pour réduire l'utilisation des verrous, l'optimiseur peut choisir d'utiliser des verrous de niveau page dans un index lors de l'analyse de l'index.

Le verrouillage dynamique offre les avantages suivants :

  • Administration de bases de données simplifiée. Les administrateurs de la base de données ne doivent pas ajuster les seuils d'escalade des verrous.

  • Performances améliorées. Le Moteur de base de données réduit la charge sur le système en utilisant les verrous appropriés pour la tâche.

  • Les développeurs d'applications peuvent se concentrer sur le développement. Le Moteur de base de données adapte le verrouillage automatiquement.

Dans SQL Server 2008, le comportement d'escalade de verrous a changé avec l'introduction de l'option LOCK_ESCALATION. Pour plus d'informations, consultez l'option LOCK_ESCALATION de l'instruction ALTER TABLE.