213
7.2 Verrouillage
WHEN 'EXTENT' THEN 3
WHEN 'HOBT' THEN 4
WHEN 'ALLOCATION_UNIT' THEN 5
WHEN 'OBJECT' THEN 6
WHEN 'DATABASE' THEN 7
WHEN 'FILE' THEN 8
ELSE 9
END
Le résultat est visible sur la figure 7.1. Nous voyons que des verrous d’intention
exclusifs ont été placés sur la page, et sur la table.
Figure 7.1 — Verrous
Les verrous intentionnels comportent le mode du verrou originel : IS pour Intent
Shared, IX pour Intent Exclusive, etc.
Les verrous de schéma (schema, Sch-M) sont des verrous sur les structures. Il
serait désagréable de voir la table dans laquelle on est en train de lire, supprimée par
une autre transaction.
Les verrous d’étendue (range, RangeM-M) sont des verrous sur les ressources qui
« entourent » la ressource verrouillée. Elles permettent de prévenir les lectures fantômes en niveau d’isolation SERIALIZABLE. Nous en parlerons quand nous présenterons les niveaux d’isolation.
Nous pouvons observer le verrouillage à travers plusieurs vues de gestion dynamiques que nous présenterons au long de ce chapitre. La vue principale affichant les
verrous en cours est sys.dm_tran_locks.
À propos des latches
Vous verrez parfois, par exemple dans les sessions en attente (en exécutant la vue
sys.dm_os_waiting_tasks, notamment), passer le mot latch, par exemple avec des
attentes de type PAGEIOLATCH.
Les latches, traduits en français dans la documentation par verrous internes ou
verrous de ressources internes, sont des verrous de synchronisation, légers, rapides et
posés habituellement durant un temps très court, destinés à protéger les structures
physiques lors de leur accès par le moteur de stockage et leur transmission au moteur
7.2 Verrouillage
WHEN 'EXTENT' THEN 3
WHEN 'HOBT' THEN 4
WHEN 'ALLOCATION_UNIT' THEN 5
WHEN 'OBJECT' THEN 6
WHEN 'DATABASE' THEN 7
WHEN 'FILE' THEN 8
ELSE 9
END
Le résultat est visible sur la figure 7.1. Nous voyons que des verrous d’intention
exclusifs ont été placés sur la page, et sur la table.
Figure 7.1 — Verrous
Les verrous intentionnels comportent le mode du verrou originel : IS pour Intent
Shared, IX pour Intent Exclusive, etc.
Les verrous de schéma (schema, Sch-M) sont des verrous sur les structures. Il
serait désagréable de voir la table dans laquelle on est en train de lire, supprimée par
une autre transaction.
Les verrous d’étendue (range, RangeM-M) sont des verrous sur les ressources qui
« entourent » la ressource verrouillée. Elles permettent de prévenir les lectures fantômes en niveau d’isolation SERIALIZABLE. Nous en parlerons quand nous présenterons les niveaux d’isolation.
Nous pouvons observer le verrouillage à travers plusieurs vues de gestion dynamiques que nous présenterons au long de ce chapitre. La vue principale affichant les
verrous en cours est sys.dm_tran_locks.
À propos des latches
Vous verrez parfois, par exemple dans les sessions en attente (en exécutant la vue
sys.dm_os_waiting_tasks, notamment), passer le mot latch, par exemple avec des
attentes de type PAGEIOLATCH.
Les latches, traduits en français dans la documentation par verrous internes ou
verrous de ressources internes, sont des verrous de synchronisation, légers, rapides et
posés habituellement durant un temps très court, destinés à protéger les structures
physiques lors de leur accès par le moteur de stockage et leur transmission au moteur
