Мир ИТ - Уровни изолированности
   
  Мир ИТ
  Содержание
  1С:Предприятие
  Oracle
  SQL Server
  => Установка SQL Server
  => Обновление статистик SQL
  => Переиндексация таблиц SQL
  => Уровни изолированности
  => Настройка SQL Server
  => Выявление статистики ожидания блокирово
  SAP
  Linux
  Контакт
  Гостевая книга

Изолированность означает, что каждая транзакция действует так же, как если бы она была единственной в системе; иными словами, модификации, выполняемые в одной транзакции, изолируются от модификаций, выполняемых в другой параллельно выполняемой транзакции. Тем самым на любую транзакцию не влияет никакое значение, изменяемое другой транзакцией, пок аэто изменение не будет зафиксировано. В случае неуспешной транзакции ее модификации не будут оказывать влияния, поскольку будет выполнен откат (отмена) соответствующих изменений.
Характер изолируемости транзакций зависит от указанного уровня изолированности.

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

Ниже описано 4 уровня изолированности - от низсшего до высшего:

Read uncommitted (чтение незафиксированных данных) самый низкий уровень изолированности. Транзакции изолированны только в такой степени, чтобы нельзя было читать поврежденные данные.

Read committed (чтение фиксированных данных) принятый по умолчанию уровень для SQL Server. На этом уровне разрешается только чтение фиксированных данных. Фиксированные данные. (Фиксированные данные- которые стали постоянной частью базы данных)

Repeatable read (повторяемость чтения) уровень, при котором чтение одной и той же строки или строк в транзакции дает одинаковый результат. Пока транзакция не завершена, никакие другие транзакции не могут модифицировать эти данные

Serializable (упорядочиваемость) самый высокий уровень изолированности. транзакции полностью изолируются друг от друга.
На этом уровне результаты параллельного выполнения транзакций для базы данных совпадают с последовательным выполнением тех же транзакций (по очереди в каком-либо порядке).


Можно задать уровень изолированности, который будет использоваться для всего сеанса пользователя SQL Server. Для этих целей используется оператор SET TRANSACTION ISOLATION LEVEL. Используется следующий синтаксис:

SET TRANSACTION ISOLATION LEVEL
READ UNCOMMITED
GO
 
 После того как задан определенный уровень изолированности для сеанса, все последующие транзакции в этом сеансе SQL Server будут осуществлять блокировку, обеспечивающую этот уровень изолированности.

Чтобы определить, какой уровень изолированности SQL Server используется в данный момент по умолчанию используется команда:

DBCC USEROPTIONS

Эта команда возвращает в результате только те команды, которые задал пользователь или которые являются активными.


К содержанию
Сегодня были уже 7 посетителей (19 хитов) здесь!
Этот сайт был создан бесплатно с помощью homepage-konstruktor.ru. Хотите тоже свой сайт?
Зарегистрироваться бесплатно