Модели конкурентного доступа

Оценить
(0 голоса)

Database Engine поддерживает две различные модели конкурентного доступа:

♦ пессимистический конкурентный доступ;

♦ оптимистический конкурентный доступ.

Пессимистический конкурентный доступ применяет замки для блокировки доступа к данным, которые используются другим процессом в то же самое время. Иными словами, система базы данных, которая использует пессимистический конкурентный доступ, предполагает, что конфликт между двумя или более процессами может появиться в любое время, и поэтому блокирует ресурсы (строки, страницы, таблицы), как только они потребуются, на все время выполнения транзакции. Как вы увидите в разд. «Блокировка», пессимистический конкурентный доступ устанавливает совместно используемые замки на прочитанные записи, так что никакой другой процесс не может изменять эти данные. Пессимистический конкурентный доступ также устанавливает эксклюзивные замки для изменяемых данных, и никакой другой процесс не может ни читать, ни изменять эти данные.

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


Подробнее в этой категории: Транзакции »
Транзакции
Свойства транзакций
Операторы Transact-SQL и транзакции
Протокол транзакций
Блокировка данных в базе данных

Добавить комментарий


Защитный код
Обновить

© 2021 serversql.ru. Все права защищены.