Показать сообщение отдельно
Старый 12.02.2016, 13:37   #8  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,712 / 1201 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
На всякий случай замечу, что если у базы установлено свойство

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 для конкретной таблицы в запросе
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
За это сообщение автора поблагодарили: Logger (3).