Минимальный уровень изоляции транзакции, чтобы избежать «потерянных обновлений»

С уровнями изоляции транзакций SQL Server вы можете избежать некоторых нежелательных проблем параллелизма, таких как грязное чтение и т. Д.

Меня сейчас интересует потерянные обновления - факт, что две транзакции могут перезаписывать обновления друг друга, и никто этого не заметит. Я вижу и слышу противоречивые утверждения относительно того, какой уровень изоляции я должен выбрать как минимум, чтобы этого избежать.

Кален Делейни в своей книге «Внутреннее устройство SQL Server» говорит (Глава 10 - Транзакции и параллелизм - стр. 592):

В изоляции «Чтение незафиксированных» все действия, описанные ранее, , кроме потерянных обновлений , возможны.

С другой стороны, независимый инструктор по SQL Server, предоставивший нам класс, сказал нам, что нам нужно как минимум «Repeatable Read», чтобы избежать потери обновлений.

Так кто же прав ?? А почему ??

18
задан Charles 23 March 2012 в 19:36
поделиться