SNAPSHOT

Оценить
(0 голоса)

Транзакции, выполняющиеся под уровнем изоляции snapshot, получают исключительные блокировки данных перед выполнением модификаций только для поддержания ограничений. В противном случае блокировки на данные не устанавливаются, пока не будут изменены данные. Если данные строки соответствуют критериям обновления, то транзакция snapshot проверяет, не были ли изменены и подтверждены изменения данных этой строки в конкурентной транзакции после того, как была запущена текущая транзакция. Если данные в строке были модифицированы в конкурентной транзакции, то возникает конфликт, и транзакция snapshot завершается. Конфликт обновления обрабатывается системой базы данных, поэтому не существует способа отмены проявления конфликта обновления.

Реализация уровня изоляции snapshot является процессом, состоящим из двух шагов. Во-первых, нужно установить опцию для базы данных allow_snapshot_isolation. Во-вторых, для каждой сессии, которая будет использовать этот уровень изоляции, нужно задать для оператора set transaction isolation level значение snapshot. Когда установлены эти опции, будут создаваться версии для всех строк, изменяемых в базе данных.


READ COMMITTED SNAPSHOTS сравнении с SNAPSHOT
Резюме к управление паралельной работой
Модели конкурентного доступа
Транзакции
Свойства транзакций

Добавить комментарий


Защитный код
Обновить

© 2021 serversql.ru. Все права защищены.