ИСПРАВИТЬ: Некластеризованный индекс может привести к повреждению при выполнении сложных инструкции UPDATE, а также подсказка NOLOCK для таблицы в SQL Server 2008, SQL Server 2008 R2 или SQL Server 2012

Переводы статьи Переводы статьи
Код статьи: 2878968 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Симптомы

Если выполнить сложные инструкции UPDATE , а также подсказки NOLOCK для таблиц в Microsoft SQL Server 2008, Microsoft SQL Server 2012 или Microsoft SQL Server 2008 R2, может привести к повреждению некластеризованного индекса. Кроме того в журнале ошибок SQL Server регистрируется следующее сообщение об ошибке:

Датанастроеквременинастроек spid # ошибка: 8646, уровень серьезности: 21, состояние: 1.
Датанастроеквременинастроек spid # не удается найти элемент указателя в индекс 3, 2102402659, таблицы в базе данных "имя базы данныхнастроек". Указанный индекс поврежден или существует проблема с текущим планом обновления. Запустите DBCC CHECKDB и DBCC CHECKTABLE. Если ошибка повторится, обратитесь в службу поддержки продукта.
Датанастроеквременинастроек spid # Using "dbghelp.dll" версии "4.0.5"
Датанастроеквременинастроек spid # ** дамп потока - spid = 0, EC = 0x0000000BD70624C0
Датанастроеквременинастроек spid # *** дамп стека, отправляемые Y:\MSSQL\MSSQL10.MSSQLSERVER\MSSQL\LOG\SQLDump0003.txt
Date>Time> spid # * *******************************************************************************
Датанастроеквременинастроек spid # *
Датанастроеквременинастроек spid # * НАЧАТЬ ДАМПА стека:
Датанастроеквременинастроек spid # * Датанастроеквременинастроек spid #
Датанастроеквременинастроек spid # *
Датанастроеквременинастроек spid # * CPerIndexMetaQS::ErrorAbort - повреждение индекса
Датанастроеквременинастроек spid # *

Примечание
подсказка NOLOCK можно применить к исходной таблицы в инструкции. Тем не менее нельзя применить подсказку NOLOCK для целевой таблицы в инструкции.

Причина

Эта проблема возникает, так как подсказка NOLOCK вызывает запрос неверно считывать значения в таблице запроса несколько раз считывает те же значения.

Решение

Проблема была впервые устранена в следующем накопительном обновлении SQL Server.

11 Накопительного обновления для SQL Server 2012

Накопительного обновления 7 для SQL Server 2012 с пакетом обновления 1

13 Накопительного обновления для SQL Server 2008 с пакетом обновления 3

Накопительное обновление 9 для SQL Server 2008 R2 с пакетом обновления 2

О накопительных обновлений для SQL Server

Свернуть это изображениеРазвернуть это изображение
assets folding start collapsed
Каждый новый накопительный пакет обновления для SQL Server содержит все исправления и все безопасности исправления, входившие в состав предыдущего накопительного обновления. Извлечь последние накопительные обновления для SQL Server:
Свернуть это изображениеРазвернуть это изображение
assets folding end collapsed

Статус

Данное поведение является подтвержденной ошибкой продуктов Майкрософт, перечисленных в разделе «Информация в данной статье применима к:».

Свойства

Код статьи: 2878968 - Последний отзыв: 17 декабря 2013 г. - Revision: 4.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft SQL Server 2008 Service Pack 3 на следующих платформах
    • Microsoft SQL Server 2008 Enterprise
    • Microsoft SQL Server 2008 Developer
    • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 R2 Datacenter
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 R2 Web
  • Microsoft SQL Server 2008 R2 Workgroup
  • Microsoft SQL Server 2012 Developer
  • Microsoft SQL Server 2012 Enterprise
  • Microsoft SQL Server 2012 Standard
  • Microsoft SQL Server 2012 Web
Ключевые слова: 
kbqfe kbfix kbsurveynew kbexpertiseadvanced kbmt KB2878968 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Данная статья переведена с использованием программного обеспечения Майкрософт для машинного перевода и, возможно, отредактирована посредством технологии Community Translation Framework (CTF). Корпорация Майкрософт предлагает вам статьи, обработанные средствами машинного перевода, отредактированные членами сообщества Майкрософт и переведенные профессиональными переводчиками, чтобы вы могли ознакомиться со всеми статьями нашей базы знаний на нескольких языках. Статьи, переведенные с использованием средств машинного перевода и отредактированные сообществом, могут содержать смысловое, синтаксические и (или) грамматические ошибки. Корпорация Майкрософт не несет ответственности за любые неточности, ошибки или ущерб, вызванные неправильным переводом контента или его использованием нашими клиентами. Подробнее об CTF можно узнать по адресу http://support.microsoft.com/gp/machine-translation-corrections/ru.
Эта статья на английском языке: 2878968

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com