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

Откуда: Israel
Сообщений: 1001
msdn
Имеет место, когда задача ожидает получения блокировки типа NULL на текущее ключевое значение и блокировки вставки диапазона между текущим и предыдущим ключами.Блокировка типа NULL на ключ — это блокировка с немедленным снятием.


Запускается процедура с upsert ....

if exists(select * from Table1 WHERE Id = @Id)
 UPDATE Table1
 SET Val = @Value
 WHERE Id = @Id
ELSE
 INSERT INTO Table1 VALUES(@Id, @Value)


Почему стал блокироваться, причём в sys.sysprocesses показывает что blocked это -2, а lastwaittype - LCK_M_RIn_NL

Что с этим делают?

MS SQL 2005 SP4 x64
11 мар 13, 15:33    [14036041]     Ответить | Цитировать Сообщить модератору
 Re: LCK_M_RIn_NL ???  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Отстрелило по самое колено, уровень изоляции транзакции SERIALIZABLE поди.
Одноногих с данной консрукцией пол форума.
14 мар 13, 03:42    [14045489]     Ответить | Цитировать Сообщить модератору
 Re: LCK_M_RIn_NL ???  [new]
Crimean
Member

Откуда:
Сообщений: 13147
Mnior,

а чо, норм конструкция, ну да, постреливать будет по уникальности, но не часто же
14 мар 13, 12:45    [14046979]     Ответить | Цитировать Сообщить модератору
 Re: LCK_M_RIn_NL ???  [new]
EvAlex
Member

Откуда: Israel
Сообщений: 1001
Crimean
Mnior,

а чо, норм конструкция, ну да, постреливать будет по уникальности, но не часто же


я лично предпочитаю
UPDATE ...
IF @@ROWCOUNT = 0
 INSERT

но это BizTalk
16 мар 13, 22:07    [14057793]     Ответить | Цитировать Сообщить модератору
 Re: LCK_M_RIn_NL ???  [new]
Cygapb-007
Member

Откуда:
Сообщений: 1677
а что, MERGE нельзя?
merge table1 t
using(select @id id, @val val)s on t.id=s.id
when matched then
  update set t.val=s.val
when not matched then
  insert (id,val) values (s.id,@val);
16 мар 13, 23:42    [14058077]     Ответить | Цитировать Сообщить модератору
 Re: LCK_M_RIn_NL ???  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3422
Cygapb-007,

В 2005 - нельзя.
17 мар 13, 06:36    [14058594]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить