Изменения документа MSSQL. Организация блокировок с пропуском заблокированных
Редактировал(а) Alexandr Fokin 2024/06/07 23:56
отредактировано Alexandr Fokin
на 2024/06/07 23:49
на 2024/06/07 23:49
отредактировано Alexandr Fokin
на 2024/06/07 23:56
на 2024/06/07 23:56
Изменить комментарий:
К данной версии нет комментариев
Комментарий
-
Свойства страницы (1 изменено, 0 добавлено, 0 удалено)
Подробности
- Свойства страницы
-
- Содержимое
-
... ... @@ -1,0 +1,45 @@ 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 +----