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