Read Uncommitted
- если в одной транзакции поменять данные — селект этих данных (в другой транзакции или без транзакции) не будут ждать окончания первой транзакции и вернут записанные данные незакомиченных транзакций
- если в одной транзакции считать данные — апдейты этих данных в другой транзакции не будут ждать окончания первой транзакции
- шаред локи не используются. Что аналогично установке NOLOCK хинта во все селекты в Read Commited
- эксклюзивные локировки устанавливаются в процессе выполнения стейтмента и снимаются по окончанию транзакции
Read Committed + read_committed_snapshot off
(alter database xxx set read_committed_snapshot off)
- если в одной транзакции поменять данные — селект этих данных (в другой транзакции или без транзакции) будут ждать окончания первой транзакции. Селект с NOLOCK хинтом вернёт изменённые, но не закомиченные данные.
- если в одной транзакции считать данные — апдейты этих данных в другой транзакции не будут ждать окончания первой транзакции
- шаред локировки устанавливаются в процессе работы стейтмента и снимаются по окончанию стейтмента
- эксклюзивные локировки устанавливаются в процессе выполнения стейтмента и снимаются по окончанию транзакции