Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Опять блокировки  [new]
volnikh
Member

Откуда:
Сообщений: 25
Всем доброе время суток.
Никогда не работал с SQL Server-ом
Может мне кто нибудь объяснить почему в документации написано что INSERT
выполняет монопольную блокировку всей таблицы

автор
Режим блокировки
Инструкция INSERT всегда получает монопольную блокировку (X) на таблицу, которую она изменяет, и держит блокировку до тех пор, пока транзакция не завершится. Если ресурс удерживается монопольной (X) блокировкой, то другие транзакции не могут изменять данные. Операции считывания будут допускаться только при наличии подсказки NOLOCK или уровня изоляции незафиксированной операции чтения.


автор
Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64) Apr 2 2010 15:48:46 Copyright (c) Microsoft Corporation Developer Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)


но у меня INSERT не выполняет монопольной блокировки для других операций вставки.

1 сессия

BEGIN TRAN
INSERT INTO TestTable WITH(XLOCK, HOLDLOCK, NOWAIT)
  (
    Col
  )
VALUES
  (
    'AAA'
  );  
      
   WAITFOR DELAY '00:01:00.000';
ROLLBACK



2 сессия

INSERT INTO TestTable WITH(XLOCK, HOLDLOCK, NOWAIT)
  (
    Col
  )
VALUES
  (
    'BBB'
  ); 


вторая сессия с записывает данные в базу хотя везде я даже специально прописал (XLOCK, HOLDLOCK, NOWAIT)
28 сен 12, 18:50    [13240734]     Ответить | Цитировать Сообщить модератору
 Re: Опять блокировки  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37143
Чушь какая-то в хелпе.
28 сен 12, 18:57    [13240758]     Ответить | Цитировать Сообщить модератору
 Re: Опять блокировки  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
Ага. ерунда. Причем в хелпе от 2008го такого пункта не было. Вот блокировки при вставке:

resource_typeobject_idindex_idrequest_mode
PAGE4946248051IX
KEY4946248051X
OBJECT494624805IX
28 сен 12, 21:43    [13241549]     Ответить | Цитировать Сообщить модератору
 Re: Опять блокировки  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31780
Гавриленко Сергей Алексеевич, Mind,

В дрокументации к 2008R2 сказано то же самое, и внизу недоумённый комментарий от сообщества...

http://technet.microsoft.com/en-us/library/ms174335(v=sql.105).aspx

Кто то писал микрософту об этом (без заведения баги в коннекте), реакции не было. Нужно кстати в коннекте поискать, может уже кто то завёл багу.
28 сен 12, 23:29    [13242193]     Ответить | Цитировать Сообщить модератору
 Re: Опять блокировки  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31780
alexeyvg
В дрокументации к 2008R2 сказано то же самое
В смысле, и для SQL Server 2012, и для 2008 R2
28 сен 12, 23:31    [13242204]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить