Четверг Мая 17 , 2012
TEXT_SIZE
   


Уровни изоляции

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

Метео

Войти

Голосование

Идеальный вариант проведения новогодней корпоративной вечеринки - это…

Сейчас на сайте

Сейчас 7 гостей онлайн