Я прочитал фиксированную изоляцию, которая может обеспечить значительно больший параллелизм, чем сериализуемый уровень изоляции.
Мой вопрос здесь Как постоянная изоляция чтения обеспечивает больше параллелизма, чем сериализуемый? . Краткий сценарий очень помог бы
Вопрос: - Скажем, две транзакции tran1 и tran2 начинаются (когда я говорю, что транзакция начинается, здесь это означает, что транзакция начинается, когда они запускают какой-то запрос Верно? ) в момент времени t1. Если tran1 обновляет строку1 в момент времени t2, а позже в момент времени t3 tran2 выбирает ту же строку, то обновленная строка не будет выполнена с помощью функции tran1. Верно? Я сказал это, потому что tran1 и tran2 будут представлять результат из состояния данных, которые присутствовали в момент времени t1. Правильно? Делает ли транзакция моментальный снимок полной базы данных, когда она начинается?
Я прочитал, что кодирование сериализуемых транзакций требует от разработчика приложений дополнительной работы для проверки ошибки «Невозможно сериализовать доступ», а также для отмены и повторения транзакции. Не уверены, когда разработчик получит сообщение об ошибке «Не удалось сериализовать доступ»? Получим ли мы ту же ошибку в следующем сценарии
Допустим, две транзакции tran1 и tran2 начинаются в момент времени t1. Если tran1 обновляет row1 и фиксирует в момент времени t2, а позже в момент времени t3 tran2 обновляет и фиксирует ту же строку1. В этом случае будет выдано сообщение об ошибке «Не удается сериализовать доступ»? Если да, поддерживает ли oracle версию внутренне в случае сериализуемых транзакций, чтобы узнать, что строка была обновлена пользователем?