На всякий случай замечу, что если у базы установлено свойство
X++:
SET READ_COMMITTED_SNAPSHOT ON
В списке свойств базы данных в Management Studio это выглядит как настройка
Is Read Commited Snapshort On = True
И используется стандартный режим изоляции READ COMMITTED, то режим грязного чтения смысла не имеет.
При таких комбинациях настроек данные в запросе будут считываться из "мгновенного снимка" таблиц, созданного непосредственно перед внесением изменений в эти таблицы. Т.е. не будет блокировок ожидания завершения транзакций. Хотя и данные будут считаны на момент до начала транзакций
Впрочем, в справке по уровням изоляции
https://msdn.microsoft.com/ru-ru/lib...=sql.105).aspx есть такая фраза
Цитата:
Сообщение от
MS SQL 2008 R2
Оптимизированные операции массовой загрузки, работающие с кучами, блокируют запросы, которые выполняются со следующими уровнями изоляции:
•SNAPSHOT
•READ UNCOMMITTED
•READ COMMITTED с использованием управления версиями строк
Обратное также верно — запросы, которые выполняются с этими уровнями изоляции, блокируют оптимизированные операции массовой загрузки, работающие с кучами.
Опция with (nolock) - это режим изоляции READ UNCOMMITTED для конкретной таблицы в запросе