Как обновить таблицы с nvarchar (max) столбцами с минимальными блокировками - PullRequest
0 голосов
/ 24 ноября 2011

У меня проблемы с обновлением некоторых строк в SQL Server (2005 и 2008).

Часто, когда я пытаюсь обновить одну строку при наличии текущего запроса (select * from thistable), я запускаю команду обновленияи произойдет сбой из-за проблемы тайм-аута / блокировки.

Он появляется только в таблицах с nvarchar(max)/text столбцами!

Даже если я пытаюсь SELECT * FROM thistable WITH(ROWLOCK), я сталкиваюсь с той же проблемой.

Итак, мой основной вопрос:

Могу ли я мотивировать SQL Server НЕ блокировать больше, чем фактическая строка?

Редактировать: я первыйпосле этого запускаю SELECT, я пытаюсь ОБНОВИТЬ ...


Существует большое объяснение блокировки в SQL-Server на простом разговоре

1 Ответ

1 голос
/ 25 ноября 2011

Попробуйте использовать:

SELECT * FROM thistable (NOLOCK)

для оператора select.

Затем запустите обновление как обычно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...