Уровень изоляции транзакции для таблицы в Microsoft SQL Server

Это скорее подтверждение того, что я думал, чем вопрос. Можно ли изменить уровень изоляции на основе таблицы в SQL Server или он может быть определен / изменен только на уровне сеанса, как указано в приведенной ниже инструкции?

SET TRANSACTION ISOLATION LEVEL SERIALIZABLE

Итак, в Microsoft SQL Server нет ничего лучше, чем

ALTER DATABASE SET DEFAULT TRANSACTION ISOLATION LEVEL SERIALIZABLE

или что-то вроде

CREATE TABLE T(A INT) TRANSACTION ISOLATION LEVEL SERIALIZABLE

?

Связанные вопросы и ответы, которые я прочитал:


person Eugene Lycenok    schedule 02.08.2020    source источник
comment
ну да и нет. Некоторые подсказки таблицы являются логическим эквивалентом определенных уровней изоляции - например, очень злоупотребляемой подсказкой NOLOCK. Есть СЕРИАЛЬНАЯ подсказка. Подсказки должны применяться в каждом запросе, на который вы хотите повлиять. Ваш вопрос очень необычен, и я предлагаю вам хорошенько подумать, чтобы продолжить этот подход.   -  person SMor    schedule 03.08.2020


Ответы (1)


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

person Jason    schedule 03.08.2020