Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
экзамен рбд.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
39.97 Кб
Скачать
  1. Типы блокировок. Динамические блокировки.

В следующей таблице показаны режимы блокировки ресурсов, применяемые компонентом Database Engine.

Режим блокировки

Описание

Совмещаемая блокировка (S)

Используется для операций считывания, которые не меняют и не обновляют данные, такие как инструкция SELECT.

Блокировка обновления (U)

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

Монопольная блокировка (Х)

Используется для операций модификации данных, таких как инструкции INSERT, UPDATE или DELETE. Гарантирует, что несколько обновлений не будет выполнено одновременно для одного ресурса.

Блокировка с намерением

Используется для создания иерархии блокировок. Типы намеренной блокировки: с намерением совмещаемого доступа (IS), с намерением монопольного доступа (IX), а также совмещаемая с намерением монопольного доступа (SIX).

Блокировка схемы

Используется во время выполнения операции, зависящей от схемы таблицы. Типы блокировки схем: блокировка изменения схемы (Sch-S) и блокировка стабильности схемы (Sch-M).

Блокировка массового обновления (BU)

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

Диапазон ключей

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

В приложении Microsoft SQL Server Database Engine используется динамический выбор уровня блокировки, что обеспечивает оптимальное использование ресурсов. При выполнении запроса компонент Database Engine автоматически определяет оптимальный уровень блокировки на основании характеристик схемы и запроса. Например, при просмотре индекса для уменьшения загрузки системы оптимизатор может задать блокировки на уровне страниц.

Динамический выбор уровня блокировки имеет следующие преимущества.

  • Упрощенное администрирование базы данных. Администратор базы данных не должен задавать условия укрупнения блокировки.

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

  • Разработчики приложений могут полностью сосредоточиться на процессе разработки. Компонент Database Engine автоматически регулирует блокировки.

  1. Распределенные транзакции. Двухфазная фиксация транзакций.

Распределенные транзакции выполняются на двух или более серверах, которые называются диспетчерами ресурсов. Управление транзакцией должно координироваться между диспетчерами ресурсов компонентом сервера, который называется диспетчером транзакций. Каждый экземпляр компонента SQL Server Database Engine может действовать как диспетчер ресурсов в распределенных транзакциях, координируемых диспетчерами транзакций, например, координатором распределенных транзакций (Майкрософт) (MS DTC) или другими диспетчерами транзакций, поддерживающими спецификацию Open Group XA обработки распределенных транзакций.

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