Wann erhält SQL Server Sperren?

10

Die Liste der Isolationsstufen in SQL Server gefunden hier heißt es, dass Schreibsperren innerhalb einer Transaktion erworben werden bis zum Ende der Transaktion beibehalten. Es wird jedoch nichts darüber erwähnt, wann diese Sperren erworben wurden.

Werden Sperren standardmäßig zu Beginn einer Transaktion erworben oder nur dann, wenn sie benötigt werden? Wenn letzteres zutrifft, wäre es daher bei großen Transaktionen vorteilhaft, Schreibvorgänge so spät wie möglich auszuführen, um die Zeitspanne zu minimieren, in der X-Sperren gehalten werden?

Levi Botelho
quelle

Antworten:

5

Werden Sperren standardmäßig zu Beginn einer Transaktion erworben oder nur dann, wenn sie benötigt werden?

Schlösser werden unmittelbar vor dem Lesen oder Schreiben erworben. Abhängig von der von der Speicher-Engine ausgewählten Sperrgranularität können Sperren auf Zeilen-, Seiten-, Partitions- oder Objektebene (Tabelle) erworben werden.

Wenn letzteres zutrifft, wäre es daher bei großen Transaktionen vorteilhaft, Schreibvorgänge so spät wie möglich auszuführen, um die Zeitspanne zu minimieren, in der X-Sperren gehalten werden?

Ja, dies kann für die Parallelität von Vorteil sein, abhängig von der Isolationsstufe, die von gleichzeitigen Transaktionen verwendet wird.

Verwandte Lektüre:

Paul White 9
quelle