Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.1 (Deutsch) » SQL Anywhere Server - SQL-Benutzerhandbuch » Transaktionen und Isolationsstufen » Transaktion blockieren und Deadlock » Transaktion blockieren

 

Die Blocking-Option

Wenn zwei Transaktionen eine Lesesperre für die gleiche Zeile gesetzt haben, hängt das Verhalten bei dem Versuch einer der Transaktionen, diese Zeile zu ändern, von der Einstellung der Datenbankoption "blocking" ab. Um diese Zeile zu ändern, muss die Transaktion die andere blockieren. Das kann sie aber nicht, solange die andere Transaktion die Zeile blockiert hat.

  • Wenn die Option "blocking" auf "On" gesetzt ist (die Standardeinstellung), dann wartet die Transaktion, die einen Schreibvorgang vornehmen will, bis die andere Transaktion ihre Lesesperre freigegeben hat. Erst danach erfolgt der Schreibvorgang.

  • Wenn die Option "blocking" auf "Off" gesetzt ist, erhält die Anweisung, die einen Schreibvorgang versucht, eine Fehlermeldung.

Wenn die Option "blocking" auf "Off" gesetzt ist, wird die Anweisung beendet, statt angehalten, und partiell durchgeführte Änderungen werden zurückgesetzt. In diesem Fall versuchen Sie, die Transaktion später noch einmal auszuführen.

Blockierungen sind häufiger bei höheren Isolationsstufen festzustellen, da dort eine größere Anzahl von Sperren und Überprüfungen durchgeführt wird. Höhere Isolationsstufen ergeben gewöhnlich weniger Parallelität. Wie viel weniger dies ist, hängt von der jeweiligen Art der gleichzeitig ablaufenden Transaktionen ab.

 Siehe auch