русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Механизмы блокировки


Дата добавления: 2015-07-09; просмотров: 614; Нарушение авторских прав


Большинство СУБД позволяют любому числу транзакций одновременно осуществлять доступ к одной и той же базе данных и в них существуют механизмы управления параллельными процессами, предотвращающие нежелательные воздействия одних транзакций на другие. По сути это механизм блокирования, главная идея которого достаточно проста. Если транзакции нужны гарантии, что некоторый объект (база данных, таблица, или строка), в котором она заинтересована, не будет изменен каким-либо непредсказуемым образом в течение требуемого промежутка времени, она устанавливает блокировку этого объекта. Результат блокировки заключается в том, чтобы изолировать этот объект от других транзакций и предотвратить его изменение средствами этих транзакций.

Рассмотрим кратко, как организованы блокировки в Oracle.

Во-первых, объектом блокирования может быть вся таблица или отдельная строка, поэтому различают блокировки типа T (Table) или R (Row). Объектом блокирования в исключительных случаях может быть и вся база данных, но при обычной многопользовательской работе этого не допускают.

Во-вторых, поддерживается не только полная блокировка ресурса (эксклюзивная блокировка – обозначается как X-блокировка), но и разделяемая (Shared) блокировка (обозначается как S-блокировка). Разделяемая блокировка позволяет нескольким транзакциям одновременно использовать ресурс, но пока не снята разделяемая блокировка, сервер не может наложить на этот ресурс эксклюзивную блокировку.

Теперь разберем конкретно, какую блокировку накладывает сервер на ресурсы при исполнении определенных команд SQL.

Команды CREATE/ALTER/DROP TABLE накладывают эксклюзивную блокировку на уровне таблицы (блокировка TX). Это значит, что нельзя выполнять никаких действий над таблицей, пока не будет закончена соответствующая операция DDL. Очевидно, для команд DDL и фиксация выполняет автоматически с целью быстрее освободить таблицу от эксклюзивной блокироки.



Команды INSERT/DELETE/UPDATE используют ресурсы в более мягком режиме. Каждая из этих команд накладывает эксклюзивную блокировку только на ту строку, которую она в данный момент обрабатывает (блокировка RX). Однако одновременно накладывается эксклюзивная блокировка на всю таблицу (блокировка TS), и это означает, что никакая DDL операция не может быть выполнена над таблицей до тех пор, пока не закончатся все DML-операции над этой таблицей и не будет снята последняя TS-блокировка (при нормальной работе такое случится, скорее всего, только к концу рабочего дня или в обеденный перерыв).

Команда SELECT не накладывает никакой блокировки на те таблицы, данные из которых она выбирает. Сервер Oracle гарантирует каждой команде выборки неизменность данных таблиц в процессе ее выполнения. Если в процессе выполнения какой-нибудь объемной и протяженной по времени выборки успела зафиксироваться какая-либо транзакция обновления данных, команда выборки не увидит результаты этой транзакции.



<== предыдущая лекция | следующая лекция ==>
Redo-журнал | Понятие индекса


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 1.768 сек.