Перед началом выполнения транзакции необходимо определить ее уровень изоляции — способ блокировки базы данных во время работы транзакции. Ниже перечислены поддерживаемые уровни изоляции транзакций.
• Chaos. Транзакция не может перезаписать другие не принятые транзакции
с большим уровнем изоляции, но может перезаписать изменения, внесенные
без использования транзакций. Поскольку данные не блокируются, записи,
внесенные во время работы транзакции, могут быть перезаписаны после ее
принятия.
• ReadCoramitted. Транзакция не может считать данные, которыми манипулирует другая транзакция. Этот уровень позволяет избежать недействительных результатов чтения, так как данные, которыми манипулирует транзакция,, на время ее работы блокируются.
• ReadUncommitted. Транзакция может считывать данные, которыми манипулирует другая транзакция. Выбор этого уровня изоляции способен привести к недействительным результатам чтения и появлению фантомных строк, поскольку
после чтения информации, внесенной в базу данных в результате выполнения
той или иной транзакции, последняя может быть отменена.
• RepeatableRead. Транзакция не может считывать данные, которыми манипулируют другие незавершенные транзакции. Иными словами, данные, которыми
манипулирует транзакция, на время ее работы блокируются.
• Serializable. Транзакция полностью изолирована от других транзакций.
Несмотря на то что перечисление IsolationLevel имеет атрибут Flags Attribute,
позволяющий использовать комбинацию нескольких уровней изоляции, подобная
функциональность не поддерживается в силу специфики элементов перечисления.
Использующийся по умолчанию уровень изоляции ReadCommitted, конечно же, не
может идеально подходить для каждого случая.
Уровни изоляции
Перед началом выполнения транзакции необходимо определить ее уровень изоляции — способ блокировки базы данных во время работы транзакции. Ниже перечислены поддерживаемые уровни изоляции транзакций. • Chaos. Транзакция не может перезаписать другие не принятые транзакции
с большим уровнем изоляции, но может перезаписать изменения, внесенные
без использования транзакций. Поскольку данные не блокируются, записи,
внесенные во время работы транзакции, могут быть перезаписаны после ее
принятия.
• ReadCoramitted. Транзакция не может считать данные, которыми манипулирует другая транзакция. Этот уровень позволяет избежать недействительных результатов чтения, так как данные, которыми манипулирует транзакция,, на время ее работы блокируются.
• ReadUncommitted. Транзакция может считывать данные, которыми манипулирует другая транзакция. Выбор этого уровня изоляции способен привести к недействительным результатам чтения и появлению фантомных строк, поскольку
после чтения информации, внесенной в базу данных в результате выполнения
той или иной транзакции, последняя может быть отменена.
• RepeatableRead. Транзакция не может считывать данные, которыми манипулируют другие незавершенные транзакции. Иными словами, данные, которыми
манипулирует транзакция, на время ее работы блокируются.
• Serializable. Транзакция полностью изолирована от других транзакций.
Несмотря на то что перечисление IsolationLevel имеет атрибут Flags Attribute,
позволяющий использовать комбинацию нескольких уровней изоляции, подобная
функциональность не поддерживается в силу специфики элементов перечисления.
Использующийся по умолчанию уровень изоляции ReadCommitted, конечно же, не
может идеально подходить для каждого случая.
Основы работы с Microsoft ADO.NET
Домашний тренажер
Обруч kettler pilates ring. домашний тренажер. Ножи для туризма.
www.sportmaster.ru
Использование поставщика данных .NET
Метео
Войти
Голосование
Идеальный вариант проведения новогодней корпоративной вечеринки - это…
Сейчас на сайте
Сейчас 7 гостей онлайн


