Поделиться через


Уровни изоляции

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

В Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) уровень изоляции, необходимый приложению, определяет поведение блокировки, используемое в SQL Server Compact Edition.

SQL Server Compact Edition поддерживает следующие уровни изоляции (от низшего к высшему):

  • Чтение зафиксированных данных (стандартный параметр SQL Server Compact Edition)
  • Повторяющееся чтение
  • Сериализация (транзакции полностью изолируются друг от друга)

По мере повышения уровня изоляции данные становятся менее подверженными непоследовательности. Однако это уменьшает параллелизм транзакции и влияет на многопользовательский доступ.

Примечание.
SQL Server Compact Edition следит за тем, чтобы только одна транзакция могла прочесть незафиксированные данные другой транзакции (некорректное чтение). Это достигается за счет использования механизма указания версий страниц, который позволяет пользователям считывать данные, не запрашивая блокировки S для данных. Это обеспечивает исключительный параллелизм операций чтения (SELECT).

Уровни изоляции и проблемы параллелизма

В следующей таблице приведены уровни изоляции и проблемы параллелизма, которые решаются с помощью этих уровней.

Примечание.
К числу возможных проблем параллелизма относятся зависимость от незафиксированных данных, непоследовательный анализ и чтение фантомов. Дополнительные сведения о проблемах параллелизма см. в разделе Параллелизм.
Уровень изоляции Зависимость от незафиксированных данных (некорректное чтение) Непоследовательный анализ (неповторяющееся чтение) Чтение фантомов

Чтение зафиксированных данных

Нет

Да

Да

Повторяющееся чтение

Нет

Нет

Да

Сериализация

Нет

Нет

Нет

Уровни изоляции задаются либо программным путем, либо с помощью синтаксиса SQL SET TRANSACTION ISOLATION LEVEL. Дополнительные сведения см. в разделе Уровень изоляции транзакций.

См. также

Основные понятия

Транзакции (SQL Server Compact Edition)
Блокировка (SQL Server Compact Edition)
Курсоры (SQL Server Compact Edition)

Справка и поддержка

Получение помощи по SQL Server Compact Edition