Как уже говорилось ранее, для каждой сессии может быть
выбран используемый по умолчанию уровень изоляции, действующий при выполнении
любых команд T-SQL. Ниже я покажу, как это сделать.
Рассмотрим синтаксис команды установки уровня изоляции
по умолчанию для текущего соединения.
SET TRANSACTION ISOLATION LEVEL
READ COMMITTED
READ UNCOMMITTED – устанавливает уровень изоляции
транзакций, на котором решается проблема «грязной» записи;
READ COMMITTED – устанавливает уровень изоляции, на
котором решается проблема «грязного» чтения;
REPEATABLE READ – устанавливает уровень изоляции, на
котором решается проблема неповторяемого чтения;
SERIALIZABLE – устанавливает уровень изоляции, на
котором решается проблема чтения фантомов.
Установка какого-либо значения остается действительной
до конца сессии, или до тех пор, пока пользователь явно не изменит уровень
изоляции транзакций.
Существует документированный способ просмотра текущего
уровня изоляции с помощью команды DBCC USEROPTIONS, но лично я всегда пользуюсь
более мощным, хотя и не документированным, средством. Чтобы узнать текущее
значение изоляции, нужно воспользоваться таким скриптом:
dbcc traceon (3604)
dbcc pss(1,53)
dbcc traceoff (3604)
Команда dbcc pss предназначена для вывода текущих
настроек указанного в параметре соединения. Вот ее синтаксис:
DBCC pss( suid, spid, printopt = 0 )
suid – идентификатор пользователя (см. хранимую
процедуру sp_helpuser);
spid – идентификатор серверного процесса;
printopt – флаг вывода (0 – стандартная информация, 1
– расширенная). По умолчанию 0.
Эта команда выводит много интересной информации, но
для нас главное – выяснить текущий уровень изоляции. Для этого нужно среди
выведенных многочисленных переменных найти одну с названием isolation_level. В
моем случае она оказалась равна 0. Это говорит о том, что для данного
соединения используется уровень изоляции по умолчанию, который, как я уже
говорил, равен READ COMMITTED. Вот все значения, которые может принимать эта
переменная:
0 – уровень изоляции по умолчанию (READ COMMITTED);
1 – уровень изоляции READ UNCOMMITTED;
2 – уровень изоляции READ COMMITTED;
3 – уровень изоляции REPEATABLE READ;
Рекомендуем скачать другие рефераты по теме: решебник по физике, украинские рефераты.