MSSQL. Организация блокировок с пропуском заблокированных

Редактировал(а) Alexandr Fokin 2024/06/07 23:56

  

 Пессимистичная блокировка 
 sp_getapplock
https://learn.microsoft.com/ru-ru/sql/relational-databases/system-stored-procedures/sp-getapplock-transact-sql?view=sql-server-ver16
Prevent multiple users from running the same SQL Server stored procedure at the same time
https://www.mssqltips.com/sqlservertip/3202/prevent-multiple-users-from-running-the-same-sql-server-stored-procedure-at-the-same-time/
Блокировка через основной механизм БДBegin;

 select *
 from table with (UPDLOCK, READPAST)

 --action

Commit;
 
Рекомендательные блокировки  
Other

Использование уровня изоляции Read uncommitted для чтения и пометки заблокированных обработчиком (до конца транзакции) строк.

1) В отличии от postgresql позволяет задействовать индекс.
2) Изменение строки накладывает блокировку на строку, что не позволит обновить из другой транзакции и в этом плане равноценно updatelock. Что делает не подходящим решением.

 

Внутренние ссылки:

Дочерние страницы:
Обратные ссылки:

Теги: