Notions de base du verrouillage
Pour comprendre le verrouillage dans Microsoft SQL Server Compact 3.5, vous devez connaître les ressources qui peuvent être verrouillées ainsi que les différents modes que vous pouvez utiliser pour verrouiller des ressources.
Granularité de verrouillage
La granularité de verrouillage fait référence au niveau auquel sont placés les verrous :
Ligne
Table
Page
Base de données
Le verrouillage à une granularité plus faible, par exemple au niveau de la ligne, augmente la simultanéité mais un plus grand nombre de verrous doit être géré si de nombreuses lignes sont verrouillées. Le verrouillage à une granularité plus large, par exemple au niveau de la table, réduit la simultanéité étant donné que le verrouillage d'une table entière interdit aux autres transactions l'accès à toute partie de la table. Toutefois, pour le verrouillage au niveau de la table, un moins grand nombre de verrous doivent être gérés.
Par défaut, SQL Server Compact 3.5 utilise le verrouillage au niveau des lignes pour les pages de données et le verrouillage au niveau des pages pour les pages d'index.
Le tableau suivant indique les ressources qui peuvent être verrouillées par SQL Server Compact 3.5.
Verrous |
Description |
---|---|
RID |
Identificateur de verrou. Utilisé pour verrouiller une seule ligne dans une table. |
PAG |
Page de données ou page d'index. |
TAB |
Table entière, y compris toutes les données et les index. |
MD |
Métadonnées de table. Utilisé pour protéger le schéma d'une table. |
DB |
Base de données |
Modes de verrouillage
Les modes de verrouillage déterminent la manière dont les transactions simultanées peuvent accéder aux données. SQL Server Compact 3.5 détermine le mode de verrouillage à utiliser sur la base des ressources qui doivent être verrouillées et des opérations à effectuer.
Le tableau suivant décrit les modes de verrouillage pris en charge par SQL Server Compact 3.5.
Mode de verrouillage |
Description |
---|---|
Partagé |
Protège une ressource en accordant uniquement l'accès en lecture. Aucune autre transaction ne peut modifier les données tant qu'il existe des verrous partagés sur la ressource. |
Exclusif |
Indique une modification de données, telle qu'une insertion, une mise à jour ou une suppression. Assure que plusieurs mises à jour ne puissent pas être effectuées simultanément sur la même ressource. |
Mise à jour |
Empêche une forme commune de blocage. Une seule transaction à la fois peut obtenir un verrou de mise à jour sur une ressource. Si la transaction modifie la ressource, le verrou de mise à jour est transformé en verrou exclusif. |
Schéma |
Utilisé lors de l'exécution d'une opération dépendant du schéma d'une table. Les types de verrous de schéma sont Modification du schéma (Sch-M) et Stabilité du schéma (Sch-S). |
Intention |
Établit une hiérarchie de verrous. Les types de verrous intentionnels les plus fréquents sont le verrou intentionnel de partage, le verrou intentionnel de mise à jour et le verrou intentionnel d'accès exclusif. Ces verrous indiquent qu'une transaction opère sur certaines (pas toutes) ressources inférieures de la hiérarchie. Les ressources de niveau inférieur auront un verrou Partagé, Mise à jour ou Exclusif. |
Important
Pour le niveau d'isolement Lecture validée, une instruction SELECT dans SQL Server Compact 3.5 ne nécessite pas l'utilisation de verrous partagés pour lire les données. Bien que ce soit nécessaire pour MicrosoftSQL Server, SQL Server Compact 3.5 ne nécessite pas le verrou Partagé pour appliquer le niveau d'isolement Lecture validée. Le seul verrou requis pour l'instruction SELECT est le verrou Stabilité du schéma (Sch-S), qui protège le schéma lors de l'opération. En conséquence, les instructions SELECT présentent une simultanéité élevée. Pour plus d'informations, consultez Niveau d'isolement des transactions.