Подразумевает ли ReadUncommitted отсутствие блокировки
-
09-06-2019 - |
Вопрос
При написании инструкции SQL в SQL Server 2005, подразумевает ли подсказка запроса READUNCOMMITTED NOLOCK или я тоже должен указать ее вручную?
Так и есть:
With (NoLock, ReadUnCommitted)
то же самое , что:
With (ReadUnCommitted)
Решение
Да, это одно и то же
Другие советы
По словам Кален Делани...
Подсказка NOLOCK не имеет ничего общего с параметрами индекса.Подсказка сообщает SQL Серверу не запрашивать блокировки при выполнении операций ВЫБОРА, поэтому не будет конфликта с данными, которые уже заблокированы.Параметры индекса просто сообщают SQL Server, что этот уровень блокировки разрешен, когда блокировка произойдет .Например, если значение ALLOW_ROW_LOCKS отключено, единственными возможными блокировками были бы блокировки страниц или таблиц.Параметры индексации не принудительно удерживают блокировки , они просто управляют возможным размером блокировок.
В ответе на вопрос в вашей теме подсказка NOLOCK и подсказка READUNCOMMITTED эквивалентны.
Я думаю, ты можешь так сказать
ReadUnCommitted обладает возможностями NoLock
Однако вы не можете этого сказать
NoLock обладает возможностями ReadUnCommitted