Sobes.tech
Middle

Quels types de verrouillages existent en SQL?

sobes.tech IA

Réponse de l'IA

Types de verrouillage en SQL:

  • Par niveau :

    • Verrouillage de table (Table Locks) : Verrouille toute la table. Facile à mettre en œuvre, mais peut réduire considérablement le parallélisme. Convient pour les opérations modifiant toute la table (par exemple, ALTER TABLE).
    • Verrouillage de lignes (Row Locks) : Verrouille des lignes individuelles. Offre un haut parallélisme, mais nécessite plus de ressources pour la gestion. Utilisé par défaut dans la plupart des SGBD pour INSERT, UPDATE, DELETE.
  • Par type d'accès :

    • Verrouillage partagé (Shared Lock - S Lock) : Permet à plusieurs transactions de lire simultanément, mais interdit l'écriture par d'autres.
    • Verrouillage exclusif (Exclusive Lock - X Lock) : Permet à une seule transaction d'accéder aux données (lecture et écriture) et bloque les autres.
    • Verrouillage d'intention (Intention Lock) : Indique au SGBD que les transactions prévoient de mettre en place un verrou à un niveau inférieur (lignes ou tables). Par exemple, IS (Intention Shared), IX (Intention Exclusive). Aide le SGBD à vérifier rapidement la compatibilité des verrous.
  • Autres types :

    • Verrouillage de plage (Range Lock) : Verrouille une plage de lignes dans un index. Utilisé pour prévenir la lecture fantôme.
    • Verrouillage de métadonnées (Metadata Lock) : Verrouille les métadonnées de l'objet (table, vue, etc.). Utilisé lors d'opérations DDL.

La compatibilité des verrous détermine si plusieurs transactions peuvent maintenir simultanément certains types de verrous sur un même objet.

Type de verrou S X IS IX
S Oui Non Oui Non
X Non Non Non Non
IS Oui Non Oui Oui
IX Non Non Oui Oui