|
Уровни изоляции
Перед началом выполнения транзакции необходимо определить ее уровень изоля-
ции — способ блокировки базы данных во время работы транзакции. Ниже перечис-
лены поддерживаемые уровни изоляции транзакций.
• Chaos. Транзакция не может перезаписать другие не принятые транзакции
с большим уровнем изоляции, но может перезаписать изменения, внесенные
без использования транзакций. Поскольку данные не блокируются, записи,
внесенные во время работы транзакции, могут быть перезаписаны после ее
принятия.
• ReadCoramitted. Транзакция не может считать данные, которыми манипулиру-
ет другая транзакция. Этот уровень позволяет избежать недействительных ре-
зультатов чтения, так как данные, которыми манипулирует транзакция,, на вре-
мя ее работы блокируются.
• ReadUncommitted. Транзакция может считывать данные, которыми манипули-
рует другая транзакция. Выбор этого уровня изоляции способен привести к не-
действительным результатам чтения и появлению фантомных строк, поскольку
после чтения информации, внесенной в базу данных в результате выполнения
той или иной транзакции, последняя может быть отменена.
• RepeatableRead. Транзакция не может считывать данные, которыми манипу-
лируют другие незавершенные транзакции. Иными словами, данные, которыми
манипулирует транзакция, на время ее работы блокируются.
• Serializable. Транзакция полностью изолирована от других транзакций.
Несмотря на то что перечисление IsolationLevel имеет атрибут Flags Attribute,
позволяющий использовать комбинацию нескольких уровней изоляции, подобная
функциональность не поддерживается в силу специфики элементов перечисления.
Использующийся по умолчанию уровень изоляции ReadCommitted, конечно же, не
может идеально подходить для каждого случая.
Предыдущая стр.   
Оглавление   
Следующая стр.
Средняя оценка:     (1 - 1 голосов) Для оценки необходимо зарегистрироваться
Только зарегистрировавшиеся пользователи могут оставлять комментарии
|
|