Das Datenbanksystem SAP DB verfügt über eine vollständige Implementierung von Transaktionen und lässt konkurrierende Transaktionen auf den gleichen Datenbankobjekten zu. Um eine Synchronisation und eine Isolation einzelner Transaktionen zu gewährleisten, sind Sperrverfahren erforderlich.
Die Grundidee von Sperrverfahren besteht darin, dass die Transaktionen so viele der von ihnen benutzten Datenbankobjekte so lange sperren, dass im Ergebnis eine korrekte Ausführung der Transaktion vorliegt.
Ein Objekt sperren heißt, dieses Objekt wird gegen bestimmte Formen der Nutzung durch andere Transaktionen gesperrt.
Je mehr Sperren gesetzt und je länger die Sperren erhalten bleiben, desto weniger Parallelität kann im Datenbankbetrieb realisiert werden. Es sollten daher nur unbedingt notwendige Sperren gesetzt werden und gesetzte Sperren sollten möglichst frühzeitig wieder freigegeben werden.
· Sperrverfahren unterscheiden sich durch die Wahl der Art der Sperre.
· Sperren können implizit oder explizit angefordert oder freigegeben werden (Sperre anfordern/freigeben).
·
Sperren können auf Zeilen-, Tabellen- und
Datenbankkatalogebene gesetzt werden.
Werden zu viele Zeilensperren (Lese- oder Schreibsperren) von einer
Transaktion für eine Tabelle angefordert, versucht das Datenbanksystem, dafür
eine Tabellensperre zu erhalten. Treten dabei Kollisionen mit anderen Sperren
auf, werden weiter Zeilensperren angefordert. Dies bedeutet, dass zum Erhalt
einer Tabellensperre keine Wartezustände eintreten. Die Grenze, ab der
versucht wird, Zeilensperren in eine Tabellensperre zu verwandeln, hängt vom
allgemeinen
Datenbankparameter MAXLOCKS ab.