Перейти к основному контенту
Поддержка
Войдите с помощью учетной записи Майкрософт
Войдите или создайте учетную запись.
Здравствуйте,
Выберите другую учетную запись.
У вас несколько учетных записей
Выберите учетную запись, с помощью которой нужно войти.

Проблемы

Рассмотрим следующий сценарий.

  • У вас есть база данных с параметрами ALLOW_SNAPSHOT_ISOLATION и READ_COMMITTED_SNAPSHOT , включенными в Microsoft SQL Server 2008 R2.

  • Вы запускаете инструкцию SELECT , содержащую подсказки TABLOCK и UPDLOCK , для таблицы в базе данных.

  • Инструкция SELECT переносится в явном виде BEGIN TRAN, но commit Tran не выполняется.

  • Два других запроса, запущенных с одинаковыми подсказками, находятся в явной транзакции.

В этом случае при фиксации первого запроса один из других запросов будет заблокирован.

Причина

Проблема возникает из-за того, что SQL Server неправильно сообщает о взаимоблокировке в одном из следующих сценариев:

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

  • Если ALLOW_SNAPSHOT_ISOTION включена и используются подсказки TABLOCK и UPDLOCK , вторая и третья инструкции SELECT принимают блокировки IX с намерением для преобразования в X. Блокировка IX завершает взаимоблокировку при попытке преобразовать в X.

  • Если ALLOW_SNAPSHOT_ISOLATION отключена, второй и третий запросы будут получать шесть блокировок. В этой ситуации, когда шесть блокировок преобразуются в X, это просто блокирующий сценарий, а не как взаимоблокировка.

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

Статус

Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

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

Были ли сведения полезными?

Насколько вы удовлетворены качеством перевода?
Что повлияло на вашу оценку?
После нажатия кнопки "Отправить" ваш отзыв будет использован для улучшения продуктов и служб Майкрософт. Эти данные будут доступны для сбора ИТ-администратору. Заявление о конфиденциальности.

Спасибо за ваш отзыв!

×