Пессимистическая блокировка в T-SQL

Вы можете использовать различные библиотеки JSON, представленные в Интернете, такие как org.json или Newtonsoft.Json и т. Д.

Использование библиотеки org.json:

JSONObject jsonObj = new JSONObject ("{\" phonetype \ ": \" N95 \ ", \" cat \ ": \" WP \ "} ");

5
задан gbn 22 December 2008 в 12:59
поделиться

3 ответа

Ни один. Вы почти никогда не хотите держать транзакцию, открытую, в то время как Ваш пользователь вводит данные. Если необходимо реализовать пессимистическую блокировку как это, люди обычно делают это путем прокрутки их собственной функциональности.

Рассмотрите полные разветвления того, что Вы делаете. Я когда-то работал над системой, которая реализовала блокировку как это. Вы часто сталкиваетесь с тоннами устаревших блокировок, и Ваши пользователи запутываются и сердитый очень быстро, когда Вы навязываете это на них. Решение для нас в нашем случае состояло в том, чтобы удалить эту функциональность блокировки полностью.

3
ответ дан 13 December 2019 в 19:38
поделиться

просто обратите внимание, что несмотря на использование SQL Server БЛОКИРОВКИ СТРОКИ мог бы принять решение все еще взять полностраничную блокировку, если это считает необходимым.

0
ответ дан 13 December 2019 в 19:38
поделиться

Если Вы ожидаете на другом ресурсе, таком как конечный пользователь, то слушаете совет Dave Markle и не делаете этого.

Иначе попробуйте следующий код T-SQL:

BEGIN TRAN

SELECT *
FROM   authors AU
WITH   (HOLDLOCK, ROWLOCK)
WHERE  AU.au_id = '274-80-9391'

/* Do all your stuff here while the row is locked */

COMMIT TRAN

Подсказка HOLDLOCK вежливо просит, чтобы SQL Server содержал блокировку, пока Вы не фиксируете транзакцию. Подсказка БЛОКИРОВКИ СТРОКИ вежливо просит, чтобы SQL Server заблокировал только эту строку вместо того, чтобы выпустить страницу или блокировку таблицы.

Знайте, что, если много строк затронуто, или SQL Server возьмет на себя инициативу и возрастет для подкачки страниц блокировок, или у Вас будет целая армия блокировок строки, заполняющих память Вашего сервера и обработку срывания.

8
ответ дан 13 December 2019 в 19:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: