Исходный код вики MSSQL. Организация блокировок с пропуском заблокированных
Редактировал(а) Alexandr Fokin 2024/06/07 23:56
Последние авторы
author | version | line-number | content |
---|---|---|---|
1 | |||
2 | |||
3 | | |[[Пессимистичная блокировка>>doc:Архитектура и модели.Блокировки.Пессимистичная блокировка.WebHome]]| | ||
4 | | |sp_getapplock | ||
5 | [[https:~~/~~/learn.microsoft.com/ru-ru/sql/relational-databases/system-stored-procedures/sp-getapplock-transact-sql?view=sql-server-ver16>>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 | ||
6 | [[https:~~/~~/www.mssqltips.com/sqlservertip/3202/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/]] | ||
7 | |Блокировка через основной механизм БД|{{code language="sql"}}Begin; | ||
8 | |||
9 | select * | ||
10 | from table with (UPDLOCK, READPAST) | ||
11 | |||
12 | --action | ||
13 | |||
14 | Commit;{{/code}}| | ||
15 | |Рекомендательные блокировки| | | ||
16 | |Other|((( | ||
17 | Использование уровня изоляции Read uncommitted для чтения и пометки заблокированных обработчиком (до конца транзакции) строк. | ||
18 | |||
19 | 1) В отличии от postgresql позволяет задействовать индекс. | ||
20 | 2) Изменение строки накладывает блокировку на строку, что не позволит обновить из другой транзакции и в этом плане равноценно updatelock. Что делает не подходящим решением. | ||
21 | )))| | ||
22 | |||
23 | ---- | ||
24 | |||
25 | ==== Внутренние ссылки: ==== | ||
26 | |||
27 | ====== Дочерние страницы: ====== | ||
28 | |||
29 | {{children/}} | ||
30 | |||
31 | ====== Обратные ссылки: ====== | ||
32 | |||
33 | {{velocity}} | ||
34 | #set ($links = $doc.getBacklinks()) | ||
35 | #if ($links.size() > 0) | ||
36 | #foreach ($docname in $links) | ||
37 | #set ($rdoc = $xwiki.getDocument($docname).getTranslatedDocument()) | ||
38 | * [[$escapetool.xml($rdoc.fullName)]] | ||
39 | #end | ||
40 | #else | ||
41 | No back links for this page! | ||
42 | #end | ||
43 | {{/velocity}} | ||
44 | |||
45 | ---- |