Verrouillage et gestion des versions de ligne

Le Moteur de base de données SQL Server utilise les mécanismes suivants pour garantir l'intégrité des transactions et gérer la cohérence des bases de données lorsque plusieurs utilisateurs accèdent simultanément aux données :

  • Verrouillage

    Chaque transaction demande des verrous de différents types sur les ressources dont elle dépend, telles que les lignes, les pages ou les tables. Les verrous demandés empêchent les autres transactions d'apporter aux ressources des modifications susceptibles de nuire à la transaction. Chaque transaction libère ses verrous lorsqu'elle ne dépend plus des ressources verrouillées.

  • Gestion des versions de ligne

    Lorsqu'un niveau d'isolement basé sur la gestion des versions de ligne est activé, le Moteur de base de données gère les versions de chaque ligne modifiée. Les applications peuvent, au lieu de protéger toutes les lectures avec des verrous, spécifier qu'une transaction utilise les versions de ligne pour consulter les données telles qu'elles existaient à son démarrage ou à l'exécution de la requête. L'utilisation de la gestion des versions de ligne réduit sensiblement le risque qu'une opération de lecture bloque les autres transactions.

Le verrouillage et la gestion des versions de ligne empêchent les utilisateurs de lire les données non validées et plusieurs utilisateurs de modifier simultanément les mêmes données. Sans le verrouillage ou la gestion des versions de ligne, les requêtes exécutées sur ces données pourraient produire des résultats inattendus en retournant des données qui ne sont pas encore validées dans la base de données.

Les applications peuvent choisir les niveaux d'isolement de transaction, qui définissent le niveau de protection d'une transaction contre les modifications apportées par les autres transactions. Vous pouvez spécifier des indicateurs de table pour des instructions Transact-SQL spécifiques en fonction des besoins de l'application.

Les utilisateurs peuvent contrôler l'implémentation de la gestion des versions de ligne en activant ou en désactivant les options de base de données. Pour plus d'informations, consultez Activation des niveaux d'isolement selon le versioning de ligne et Utilisation de niveaux d'isolement basés sur la gestion de la version des lignes.