SQL Server – как установить подсказку (nolock) по умолчанию?

StackOverflow https://stackoverflow.com/questions/1035740

Вопрос

Есть ли способ указать серверу sql использовать подсказку (nolock) или каждый выбор в хранимой процедуре?

довольно утомительно добавлять его к каждому выбору....

Это было полезно?

Решение 4

нашел это....

Как заставить подсказку nolock для входа в систему SQL-сервера

кажется, что лучший способ добиться этого - выпустить

УСТАНОВИТЬ УРОВЕНЬ ИЗОЛЯЦИИ ТРАНЗАКЦИИ ЧТЕНИЕ НЕЗАВЕРШЕНО

есть еще идеи???

пс

еще один сопутствующий вопрос...

НОЛОК против.Уровень изоляции транзакций

Другие советы

Как совершенно справедливо говорят другие, глобальный (nolock) выполняется с использованием READ UNCOMMITTED.

Однако, прежде чем идти по этому пути, стоит сначала попробовать ПРОЧИТАТЬ ЗАКЛЮЧЕННЫЙ SNAPSHOT. Это означает, что ваши чтения не будут заблокированы во время вставок / обновлений, а также означает, что данные не загрязнены, просто устарели.

Я думаю, это то, что вы ищете ...

УСТАНОВИТЕ УРОВЕНЬ ИЗОЛЯЦИИ СДЕЛКИ СЧИТАЕТСЯ НЕЗАКОННЫМ

Вы хотите использовать следующее синтаксис:

УСТАНОВИТЬ УРОВЕНЬ ИЗОЛЯЦИИ ТРАНЗАКЦИИ ЧТЕНИЕ НЕЗАВЕРШЕНО

Я нашел это, посмотрев на подсказку таблицы NOLOCK, расположенную здесь.Подсказка таблицы With(NOLOCK) эквивалентна установке уровня изоляции READ UNCOMMITTED.Вот фрагмент из MSDN:

Нолок эквивалентен чтениям.Дополнительные сведения см. в разделе READUNCOMMITTED далее в этом разделе.

Однако вы можете получить неверные данные. В 2005 году предпочтительно использовать изоляцию моментальных снимков: " Когда помогает изоляция моментальных снимков и когда это больно " http://www.devx.com/dbzone/Article/32957

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top