Подразумевает ли ReadUncommitted NoLock - PullRequest
0 голосов
/ 28 августа 2008

При написании оператора SQL в SQL Server 2005 подсказка запроса READUNCOMMITTED подразумевает NOLOCK или я должен указать его также вручную?

Так и есть:

With (NoLock, ReadUnCommitted)

так же, как:

With (ReadUnCommitted)

Ответы [ 3 ]

1 голос
/ 28 августа 2008

По словам Калена Делани ...

Подсказка NOLOCK не имеет ничего общего с параметрами индекса. Подсказка говорит SQL Сервер не запрашивает блокировки при выполнении операций SELECT, поэтому будет нет конфликта с данными, которые уже заблокированы. Параметры индекса просто говорят SQL Server, что этот уровень блокировки разрешен, когда блокировка собирается происходят. Например, если ALLOW_ROW_LOCKS был выключен, единственные возможные блокировки будет блокировка страницы или таблицы. Параметры индекса не заставляют блокировки быть удерживаются, они просто контролируют возможный размер замков.

В ответ на вопрос в вашей теме, подсказка NOLOCK и READUNCOMMITTED подсказка эквивалентны.

1 голос
/ 29 августа 2008

Да, это одно и то же

0 голосов
/ 28 августа 2008

Я думаю, что вы можете сказать, что

ReadUnCommitted обладает способностями NoLock

Однако вы не можете сказать, что

NoLock обладает способностями ReadUnCommitted

...