MS-SQL нюансы

Блокировки

действие что блокирует
insert  таблицу 
update таблицу 
delete  таблицу 
select  не блокирует

Благодаря указателям ниже, можно из заблокированой таблицы вычитывать строки:

WITH(READPAST) - читать зафиксированные строки (будут игнорироваться строки подвергающиеся добавлению/изменению/удалению в транзакциях сторонних сессий)

WITH(NOLOCK) - читать незафиксированные строки (грязные данные)

Если нужен WITH(NOLOCK) для всех запросов транзакции, тогда нужно перед началом транзакции указать уровень блокировки READ UNCOMMITTED, например так:

SET TRANSACTION ISOLATION LEVEL REPEATABLE READ
BEGIN TRAN;

Кстати, нам даны и другие уровни изоляции:

  • READ UNCOMMITTED
  • READ COMMITTED
  • REPEATABLE READ
  • SNAPSHOT
  • SERIALIZABLE

Как блокировать

Существуют следующие виды блокировок:

Вид Какие действия блокирует Что именно блокирует
Exclusive lock (X) Insert, Update, Delete блокировка страницы или строки
Shared lock (S) Insert, Update, Delete, Select блокировка страницы или строки
Update lock (U) Insert, Update, Delete блокировка страницы или строки, которая заблокирована с помощью Shared lock (S)
Intent locks (I):   намеренье о блокировки таблицы целиком, может быть следующим:
– Intent exclusive (IX) Insert, Update, Delete см. выше
– Intent shared (IS) Insert, Update, Delete, Select см. выше 
– Intent update (IU) Insert, Update, Delete см. выше 

Источник: 1

Оцени публикацию:
  • 0,0
Оценили человек: 0

Похожие статьи:

Справочники и учебники:


Предложения и пожелания:
Ваше имя:
Ваш E-mail:
Сколько будет Οдин + Τри
Главная
X

youtube.com/watch?v=7hFivbgIEqk

При полном или частичном использовании материалов данного сайта, ссылка на сайт "yapro.ru" обязательна как на источник информации.
Автоматический импорт материалов и информации с сайта запрещен.
Copyrights © 2007 - 2019 YaPro.Ru

Главная » Веб-мастеру » MySQL »