Sobes.tech
Middle

Welche Arten von Sperren gibt es in SQL?

sobes.tech KI

Antwort von AI

Arten von Sperren in SQL:

  • Nach Ebene:

    • Tabellensperren (Table Locks): Sperrt die gesamte Tabelle. Einfach zu implementieren, kann aber die Parallelität erheblich verringern. Geeignet für Operationen, die die gesamte Tabelle modifizieren (z.B. ALTER TABLE).
    • Zeilensperren (Row Locks): Sperrt einzelne Zeilen. Bietet hohe Parallelität, erfordert aber mehr Ressourcen für die Verwaltung. Wird standardmäßig in den meisten DBMS für INSERT, UPDATE, DELETE verwendet.
  • Nach Zugriffstyp:

    • Gemeinsame Sperre (Shared Lock - S Lock): Ermöglicht mehreren Transaktionen, Daten gleichzeitig zu lesen, verbietet aber Schreibzugriffe durch andere.
    • Exklusive Sperre (Exclusive Lock - X Lock): Erlaubt nur einer Transaktion, auf die Daten zuzugreifen (lesen und schreiben), und blockiert andere.
    • Intention Lock: Wird verwendet, um dem DBMS anzuzeigen, dass Transaktionen planen, eine Sperre auf einer niedrigeren Ebene (Zeilen oder Tabellen) zu setzen. Zum Beispiel IS (Intention Shared), IX (Intention Exclusive). Hilft dem DBMS, die Kompatibilität von Sperren schneller zu prüfen.
  • Weitere Arten:

    • Bereichssperre (Range Lock): Sperrt einen Bereich von Zeilen in einem Index. Wird verwendet, um Phantom-Lesevorgänge zu verhindern.
    • Metadaten-Sperre (Metadata Lock): Sperrt die Metadaten des Objekts (Tabelle, Ansicht usw.). Wird bei DDL-Operationen verwendet.

Die Kompatibilität von Sperren bestimmt, ob mehrere Transaktionen gleichzeitig bestimmte Sperrtypen auf einem Objekt halten können.

Sperrentyp S X IS IX
S Ja Nein Ja Nein
X Nein Nein Nein Nein
IS Ja Nein Ja Ja
IX Nein Nein Ja Ja