Блокировки. Заключительным аспектом базы данных Oracle, позволяющим пользователям использовать обработку транзакций
Заключительным аспектом базы данных Oracle, позволяющим пользователям использовать обработку транзакций, является блокировка — механизм, с помощью которого Oracle предотвращает одновременное изменение данных несколькими пользователями. Имеется несколько различных типов блокировок, каждый из которых имеет свою собственную область действия. Все имеющиеся в базе данных блокировки могут быть отнесены к одной из двух категорий: блокировки уровня таблиц и блокировки уровня строк.
Блокировки уровня таблиц позволяют делать изменения в таблице только одному пользователю, который, как принято говорить, установил блокировку на эту таблицу. В то время когда таблица заблокирована, никто другой не может делать в ней никаких изменений. Блокировка таблицы может быть установлена в нескольких режимах: разделяемая блокировка строки (row share — RS), исключающая блокировка строки (row exclusive — RX), разделяемая блокировка (share — S), разделяемая блокировка с исключающей блокировкой строки (share row exclusive — SRX) и исключающая блокировка (exclusive — X). Сила накладываемого блокировкой ограничения определяет режимы, в которых могут быть приобретены и поддерживаться другие блокировки для той же самой таблицы.
Блокировка уровня строк дает пользователю эксклюзивную (исключительную) возможность изменять данные одной или нескольких строк таблицы. Однако любая строка таблицы, не удерживаемая в данный момент блокировкой, может быть изменена другим пользователем.
СоветДля оператора update требуется особая блокировка уровня строк, которая называется исключающей блокировкой строк (row-exclusive lock). Такой уровень блокировки означает, что на время выполнения оператора update никто из других пользователей не может ни просматривать, ни изменять данные этой строки. То же самое относится и к операциям insert и delete. Для другого оператора update — он называется select for update — требуется более мягкая блокировка строк, которая называется разделяемой блокировкой (share lock) Такая блокировка означает, что в то время, пока оператор update обновляет данные в строках таблицы, никто не может изменять строки, но пользователи могут просматривать данные строк, подвергающихся изменению.
Дата добавления: 2015-08-21; просмотров: 712;