Коротко о режимах управляемых блокировок

Для чего нужна управляемая блокировка?


В режиме управляемых блокировок блокировка данных происходит на достаточно низком уровне изоляции транзакции в СУБД, что позволяет достичь высокой параллельности работы пользователей.
Существует два вида режима управляемых блокировок:
  1. Исключительная
  2. Разделяемая

Исключительная блокировка


Исключительная блокировка не позволяет конкурирующему процессу установить разделяемую или исключительную блокировку по этому же условию. То есть, другие транзакции, устанавливающие управляемые блокировки, не смогут даже начать чтение этих данных.

Следует применять, если требуется изменить данные, на которые накладывается блокировка.

Разделяемая блокировка


Разделяемая блокировка позволяет конкурирующему процессу установить разделяемую блокировку по этому же условию, но не позволяет установить исключительную блокировку. То есть данные, на которые наложена блокировка, гарантированно не будут изменены другими транзакциями до окончания существующей транзакции.

Следует применять, если требуется заблокировать изменение данных на некоторый промежуток времени. Данное условие требуется, если используются сложные запросы с повторным чтением данных и т.п.

Комментарии