Определение 2www.timurshamiladze.ru Уровень изоляции транзакции - набор правил, которые определяют насколько сильно необходимо защищать данные в транзакции
Уровни изоляции поддерживаемые 1С:Предприятием 8 3www.timurshamiladze.ru Уровни изоляции в 1С:Предприятии: READ UNCOMMITED READ COMMITTED REPEATABLE READ SERIALIZABLE
Проблемы при совместной работе пользователей 4www.timurshamiladze.ru Проблемы при совместной работе: Грязное чтение Неповторяемое чтение Чтение фантомов
Уровни изоляции поддерживаемые 1С:Предприятием 8 5www.timurshamiladze.ru Уровни изоляции в 1С:Предприятии: READ UNCOMMITED Существуют все проблемы READ COMMITTED Решается проблема грязного чтения REPEATABLE READ Решается проблема неповторяемого чтения SERIALIZABLE Решается проблема чтения фантомов
Read Commited Snapshot 6www.timurshamiladze.ru В версии 1С:Предприятие 8.3 появилась поддержка 5-го уровня изоляции: Read Commited Snapshot Для базы данных начинает использоваться уровень изоляции Read_Commited_Snapshot, если параметр базы данных: READ_COMMITTED_SNAPSHOT имеет значение ON. Проверить будет ли использоваться этот уровень изоляции можно: select name,is_read_committed_snapshot_on from sys.databases
Read Commited Snapshot 7www.timurshamiladze.ru Уровень изоляции транзакции Read Commited защищает данные от грязного чтения, благодаря наложению S-блокировки на время чтения. Тем самым препятствуя грязному чтению, т.к. S и Х блокировки между собой не совместимы. Уровень изоляции транзакации Read_Commited_Snapshot, защищает данные от грязного чтения с помощью механизма версионности. При чтении данные берутся из акутальной версии данных на момент чтения. Для каждого зафиксированного изменения данных имеется своя копия (версия) Читающие транзакции не блокируют пишущие (т.к. не ставят блокировки)
Read Commited Snapshot 8www.timurshamiladze.ru Остается проблема неповторяемого чтения и чтения фантомов. Решается с помощью управляемых блокировок.
Read Commited Snapshot 9www.timurshamiladze.ru Плюсы Read Commited Snapshot Избавляемся от грязного чтения Читаем всегда зафиксированные изменения Повышается параллельность Читающие и пишущие транзакции не блокируют друг друга Минусы Read Commited Snapshot Увеличивается нагрузка на оборудование
Read Commited Snapshot 10 Рассмотрим пример, что грязного чтения в 8.3 уже нет, благодаря READ COMMITED SNAPSHOT