Блокируется таблица в MS SQL Server

Материал из DRKB

Блокируется таблица в MS SQL Server[править | править код]

По умолчанию, оператор UPDATE в MS SQL Server пытается поставить эксклюзивную табличную блокировку. Вы можете обойти это, используя ключевое слово FROM в сочетании с опцией PAGLOCK для использования MS SQL Server страничных блокировок вместо эксклюзивной табличной блокировки:

UPDATE orders
SET customer_id=NULL
FROM orders(PAGLOCK)
WHERE customer_id=32;


Блокировка на всю таблицу при UPDATE ставится только в том случае, если по предикату нет индекса. Так, можно просто проиндексировать таблицу orders по полю customer_id, и не забывать делать UPDATE STATISTIC, хотя будет работать и с PAGLOCK. Просто не факт, что UPDATE всегда делает табличную блокировку.


Source: Взято с http://delphiworld.narod.ru
ID: 02784