FIX: взаимоблокировка возникает при выполнении операции DML для таблицы, содержащей подсказку TABLOCK для блокировки или подсказки блокировки XLOCK две операции

ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.

Эта статья на английском языке:983516
Проблема
Рассмотрите следующий сценарий в Microsoft SQL Server Compact 3.5:
  • У вас есть две транзакции изоляции сериализуемой.
  • Обе транзакции попытка выполнения операции DML или запроса (DML) в той же таблицы, содержащего блокировки подсказка TABLOCK и подсказки блокировки XLOCK.
В этом случае возникает взаимоблокировка.
Причина
Эта проблема возникает, поскольку обе транзакции ждать друг с другом для XLOCK. При компиляции запроса возвращает обе транзакции получать разделяемую блокировку на таблицу и затем владеет блокировкой для изоляции сериализуемой. При попытке обе транзакции выполняют исполнения, а запрос на той же таблице, содержащей блокировки подсказки XLOCK обе транзакции дождитесь друг с другом для XLOCK. Таким образом, возникает взаимоблокировка.

ПримечаниеЭта проблема также возникает, когда обе транзакции выполняют операции DML, на той же таблице, которая содержит подсказку блокировки TABLOCK.
Решение

Службы SQL Server Compact 3.5 с пакетом обновления 2

Исправление этой проблемы сначала было выпущено в накопительное обновление 2. Для получения дополнительных сведений о том, как получить этот накопительный пакет обновления для SQL Server 2008 R2, щелкните следующий номер статьи базы знаний Майкрософт:
2289547Накопительное обновление 2 для службы SQL Server Compact 3.5 с пакетом обновления 2
Статус
Корпорация Майкрософт подтвердила, что это является проблемой в продуктах Майкрософт, которые перечислены в разделе «Данная статья применима к».
Дополнительная информация
Для получения дополнительных сведений о взаимоблокировок, посетите следующий веб-узле Microsoft Developer Network (MSDN):Для получения дополнительных сведений о DML, посетите следующий веб-узел MSDN:Для получения дополнительных сведений о терминологии, обновление программного обеспечения щелкните следующий номер статьи базы знаний Майкрософт:
824684Описание стандартной терминологии, используемые при описании обновлений программных продуктов Майкрософт

Внимание! Эта статья переведена автоматически

Свойства

Номер статьи: 983516 — последний просмотр: 08/25/2010 16:16:00 — редакция: 1.0

Microsoft SQL Server Compact 3.5

  • kbqfe kbhotfixserver kbexpertiseadvanced kbsurveynew kbautohotfix kbmt KB983516 KbMtru
Отзывы и предложения