Исходный код вики MSSQL. Организация блокировок с пропуском заблокированных
Редактировал(а) Alexandr Fokin 2024/06/07 23:56
Скрыть последних авторов
| author | version | line-number | content |
|---|---|---|---|
| |
1.2 | 1 | |
| 2 | |||
| 3 | | |[[Пессимистичная блокировка>>doc:Архитектура и модели.Блокировки.Пессимистичная блокировка.WebHome]]| | ||
| |
1.3 | 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/]] | ||
| |
1.2 | 7 | |Блокировка через основной механизм БД|{{code language="sql"}}Begin; |
| 8 | |||
| 9 | select * | ||
| |
1.3 | 10 | from table with (UPDLOCK, READPAST) |
| |
1.2 | 11 | |
| 12 | --action | ||
| 13 | |||
| 14 | Commit;{{/code}}| | ||
| |
1.3 | 15 | |Рекомендательные блокировки| | |
| |
1.4 | 16 | |Other|((( |
| 17 | Использование уровня изоляции Read uncommitted для чтения и пометки заблокированных обработчиком (до конца транзакции) строк. | ||
| |
1.2 | 18 | |
| |
1.4 | 19 | 1) В отличии от postgresql позволяет задействовать индекс. |
| 20 | 2) Изменение строки накладывает блокировку на строку, что не позволит обновить из другой транзакции и в этом плане равноценно updatelock. Что делает не подходящим решением. | ||
| 21 | )))| | ||
| 22 | |||
| |
1.2 | 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 | ---- |