SQL Server – как установить подсказку (nolock) по умолчанию?
-
10-07-2019 - |
Вопрос
Есть ли способ указать серверу sql использовать подсказку (nolock) или каждый выбор в хранимой процедуре?
довольно утомительно добавлять его к каждому выбору....
Решение 4
нашел это....
Как заставить подсказку nolock для входа в систему SQL-сервера
кажется, что лучший способ добиться этого - выпустить
УСТАНОВИТЬ УРОВЕНЬ ИЗОЛЯЦИИ ТРАНЗАКЦИИ ЧТЕНИЕ НЕЗАВЕРШЕНО
есть еще идеи???
пс
еще один сопутствующий вопрос...
Другие советы
Как совершенно справедливо говорят другие, глобальный (nolock) выполняется с использованием READ UNCOMMITTED.
Однако, прежде чем идти по этому пути, стоит сначала попробовать ПРОЧИТАТЬ ЗАКЛЮЧЕННЫЙ SNAPSHOT. Это означает, что ваши чтения не будут заблокированы во время вставок / обновлений, а также означает, что данные не загрязнены, просто устарели.
Я думаю, это то, что вы ищете ...
УСТАНОВИТЕ УРОВЕНЬ ИЗОЛЯЦИИ СДЕЛКИ СЧИТАЕТСЯ НЕЗАКОННЫМ
Вы хотите использовать следующее синтаксис:
УСТАНОВИТЬ УРОВЕНЬ ИЗОЛЯЦИИ ТРАНЗАКЦИИ ЧТЕНИЕ НЕЗАВЕРШЕНО
Я нашел это, посмотрев на подсказку таблицы NOLOCK, расположенную здесь.Подсказка таблицы With(NOLOCK) эквивалентна установке уровня изоляции READ UNCOMMITTED.Вот фрагмент из MSDN:
Нолок эквивалентен чтениям.Дополнительные сведения см. в разделе READUNCOMMITTED далее в этом разделе.
Однако вы можете получить неверные данные. В 2005 году предпочтительно использовать изоляцию моментальных снимков: " Когда помогает изоляция моментальных снимков и когда это больно " http://www.devx.com/dbzone/Article/32957