Показать сообщение отдельно
  #21  
Старый 24.09.2009, 14:51
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,211
По умолчанию Одновременный доступ



Одновременный доступ

Механизм блокирования по умолчанию работает в дифференцированном (fine¬grained), режиме блокирования на уровне строки (row-level locking mode). Различные транзакции могут обновлять разные строки внутри одной и той же таблицы, не мешая друг другу.

Хотя по умолчанию действует модель блокирования на уровне строк, база данных Oracle 10g поддерживает ручное блокирование на самом высоком уровне, если это необходимо:

Код:
SQL> LOCK TABLE hr.employees  IN EXCLUSIVE MODE; 
Table(s)  Locked.
В соответствие с этой командой любые транзакции, пытающиеся обновить строку в заблокированной таблице, должны ждать в очереди, пока блокирующая транзакция завершится. Режим EXCLUSIVE - наиболее ограничивающий режим блокирования. Другие режимы:

ROW SHARE ; разрешается одновременный доступ к заблокированной таблице, но другим сеансам запрещено блокировать всю таблицу для монопольного (exclusive) доступа

ROW EXCLUSIVE ; то же самое, что и режим ROW SHARE, однако
дополнительно запрещено блокирование в режиме SHARE. Блокировки ROW EXCLUSIVE автоматически предоставляются, когда обновляются, вставляются и удаляются данные.

SHARE ; разрешены одновременно выполняемые запросы, но запрещены изменения заблокированной таблицы. Блокировка SHARE необходима (и автоматически запрашивается) для создания индекса таблицы.

SHARE ROW EXCLUSIVE ; используется для запроса всей таблицы; другим разрешено запрашивать строки таблицы, но запрещено блокировать таблицу в режиме SHARE и изменения строк.

EXCLUSIVE ; разрешены запросы данных из заблокированной таблицы, но все другие операции запрещены. Монопольная (exclusive) блокировка нужна для удаления таблицы.


Команды ручного блокирования так же, как и другие запрашиваемые блокировки, ждут в очереди, пока все сеансы, уже удерживающие или запросившие требуемые блокировки раньше, их освободят. Команда LOCK имеет специальный аргумент NOWAIT, который определяет поведение ждущей блокировки.

Когда NOWAIT задан, управление немедленно возвращается обратно, если таблица уже заблокирована другим сеансом:



Обычно не возникает необходимости в ручном блокировании объектов. Механизм автоматического блокирования обеспечивает одновременный доступ, требуемый большинству приложений.
__________________
Телеграм чат
Ответить с цитированием