Время действия

Время действия

Время действия блокировки строки при обычной активности чтения/записи является оптимистическим - не выполняется никакая блокировка никаких строк до того момента, когда она действительно нужна. Пока изменения строки не отправлены на сервер, строка свободна для "получения" любой транзакцией чтения/записи.

Пессимистическая блокировка

Пессимистическая, или предварительная, блокировка может быть применена для наборов строк или для целых таблиц. Режимы блокировки таблиц уже были описаны (см. разд. "Резервирование таблиц" и "SNAPSHOT TABLE STABILITY (согласованность)").

Пессимистическая блокировка на уровне строки и на уровне набора является режимом, при котором требование по резервированию строки или небольшого набора выполняется до фактической пересылки изменения или удаления.

Явная блокировка

Возможность осуществлять явную пессимистическую блокировку строки была добавлена в синтаксис SQL-оператора SELECT в Firebird 1.5. Блокировка ограничена "внешним уровнем" операторов SELECT, которые возвращают выходные наборы или определяют курсоры. Она не может применяться к подзапросам.

Сокращенный синтаксис запроса явной пессимистической блокировки строки:

SELECT <выходной-список>

FROM <таблица-или-процедура-или-просмотр>

[WHERE <условия-поиска>]

[GROUP BY <спецификация-группирования>]

[UNION <выражение-выбора> [ALL]]

[PLAN <выражение-плана>]

[ORDER BY <список-столбцов>]

[FOR UPDATE [OF столбец1 [, столбец2 ...]] [WITH LOCK]]

Предложение FOR UPDATE, не являющееся инструкцией блокировки, указывает, что выходной набор должен передаваться клиенту по одной строке за раз, а не в виде пакета. Необязательная фраза WITH LOCK является элементом, который задает предварительную блокировку строки, как только сервер передает ее с сервера. Строки, ожидающие вывода, не блокируются.

Фиктивные изменения

Традиционным способом получения пессимистической блокировки строки в Firebird являются фиктивные изменения (dummy updates). Этот трюк позволяет использовать преимущества многоверсионной архитектуры. Клиент просто посылает на сервер для строки оператор изменения, который ничего не изменяет - он просто устанавливает значение столбца в его текущее значение, что приводит к тому, что сервер создает новую версию записи и, следовательно, блокирует для других транзакций запрос на изменение или удаление этой строки.

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

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

Оптимизируем размер, зону и время действия

Из книги автора

Оптимизируем размер, зону и время действия В большинстве случаев пользователю просто не нужно пересылать огромные массивы данных каждый раз — для него вполне возможно ограничиться только сессионным ключом. Исходя из этого стоит пересмотреть логику использования


Выражение действия

Из книги автора

Выражение действия Выражение действия (action expression) выполняется в том и только в том случае, когда переход срабатывает. Представляет собой атомарную операцию (достаточно простое вычисление), выполняемую сразу после срабатывания соответствующего перехода до начала каких


7.1. Состояние действия

Из книги автора

7.1. Состояние действия Состояние действия (action state) является специальным случаем состояния с некоторым входным действием и по крайней мере одним выходящим из состояния переходом. Этот переход неявно предполагает, что входное действие уже завершилось. Состояние действия


Действия над окнами

Из книги автора

Действия над окнами Рассмотрим команды окна. Наведите указатель мыши на область заголовка окна и щелкните правой кнопкой. Появится контекстное меню (рис. 3.4), содержащее пункты Восстановить, Переместить, Размер, Свернуть, Развернуть и Закрыть. Если выбрать пункт


19.6.4. Действия над цепочками

Из книги автора

19.6.4. Действия над цепочками Рекомендуется создавать отдельные цепочки для различных объектов фильтрации. Это позволяет логически группировать правила. Для создания новой цепочки используется опция -N, за которой следует имя новой цепочки (напоминаю, что имена


6.5. Действия и переходы

Из книги автора

6.5. Действия и переходы Действия и переходы сообщают правилу, что необходимо выполнить, если пакет соотвествует заданному критерию. Чаще всего употребляются действия ACCEPT и DROP. Однако, давайте кратко рассмотрим понятие переходов.Описание переходов в правилах выглядит


Целевые действия

Из книги автора

Целевые действия Целевые действия играют ключевую роль в конверсии сайта. При работе с ними ваша задача – определить, какое действие сделать основным на сайте. Это может быть «Звонок по телефону» или «Оформление покупки в интернет-магазине».Если вы принимаете звонки с


Время жизни и область действия

Из книги автора

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


2.4.2. Время установки Windows 7 и время жизни аккумулятора

Из книги автора

2.4.2. Время установки Windows 7 и время жизни аккумулятора Если вы устанавливаете Windows 7 на ноутбук или нетбук, желательно подключить его к сети питания. Если это невозможно, тогда лучше не начинать установку Windows. Хотя весь процесс установки занимает около 20–25 минут (во всяком


5 Действия

Из книги автора

5 Действия ДЛЯ УСТРОЙСТВ С МАЛЕНЬКИМ ДИСПЛЕЕМ, помещающихся на ладони, сенсорный экран — это естественный выбор. В сущности, благодаря ему мобильное устройство (а не только клавиатура или трекбол) превращается в интерактивную поверхность. Именно поэтому телефонов, экран


Завершающие действия

Из книги автора

Завершающие действия После взлома вы должны провести оценку случившегося. Следовал ли ваш персонал намеченным целям и приоритетам? Какие уроки вы извлекли? Что бы вы хотели в дальнейшем сделать по-другому? Возвращены ли ваши системы в безопасное состояние и не осталось


5.3.4. Действия над слайдами

Из книги автора

5.3.4. Действия над слайдами Над слайдами возможны следующие действия: создание, удаление, пропуск, изменение порядка слайдов, переход от предыдущего к следующему.Создание слайдаДобавление слайда происходит с помощью кнопки New (Новый), расположенной на панели


Действия с автофигурами

Из книги автора

Действия с автофигурами С помощью кнопок в группе Упорядочить вкладки Средства рисования: Формат можно настраивать взаимное положение фигур, а также фигур и обычного текста. Графические объекты могут находиться в тексте или быть независимыми от него. Для изменения