FIX: Nonclustered індекс може виникнути під Вільний час запуску комплекс операторі UPDATE разом з Підказка NOLOCK проти таблицю в SQL Server

ВАЖЛИВО! Ця стаття перекладена засобами машинного перекладу Microsoft. Статтю можна редагувати в середовищі Community Translation Framework (CTF). Щоб якомога швидше перекласти всі статті у своїй базі знань різними мовами, компанія Microsoft не лише звертається до професійних перекладачів, але й вдається до машинного перекладу, який потім редагується спільнотою. Такі статті можуть містити лексичні, синтаксичні та граматичні помилки. Microsoft не несе відповідальності за будь-які неточності, помилки або збитки, до яких може призвести неправильний переклад статей або їх використання. Докладніше про CTF див. на веб-сторінці http://support.microsoft.com/gp/machine-translation-corrections/uk-ua.

Клацніть тут, щоб переглянути цю статтю англійською мовою: 2878968
Ознаки
Під Вільний час запуску комплекс операторі UPDATE разом з Підказка NOLOCK проти таблиці Microsoft SQL Server 2008, SQL Server 2012, SQL Server 2008 R2 або SQL Server 2014, nonclustered індекс може статися. Крім того, таке протокол IMAP про помилку може увійти в систему журнал помилок SQL Server:

Дата>Вільний час> spid # помилка: 8646, тяжкості: 21, держава: 1.
Дата>Вільний час> spid # не вдалося знайти елемент предметного покажчика в індекс ID 3, 2102402659, таблиці бази даних 'ім'я бази даних>'. Вказаний індекс пошкоджено або є проблема з поточним планом оновлення. Запустити DBCC CHECKDB або DBCC CHECKTABLE. Якщо проблема не зникне, зверніться до представник служби підтримки клієнтів продуктів.
Дата>Вільний час> spid # за допомогою '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.

Накопичувальне оновлення 1 для SQL Server 2014

Накопичувальне оновлення 11 для SQL Server 2012

сукупний пакет оновлень 7 для SQL Server 2012 SP1

сукупний пакет оновлень 13 для SQL Server 2008 SP3

сукупний пакет оновлень 9 для SQL Server 2008 R2 SP2

Про накопичувальне оновлення для SQL Server

Кожен новий накопичувальне оновлення для SQL Server містить усі виправлення, і всі виправлення в безпеки, які входили до складу попередніх накопичувальне оновлення. Перевірте останню накопичувальне оновлення для SQL Server:
Стан
корпорація Майкрософт підтвердила існування цієї неполадки у продуктах Майкрософт, перелічених у розділі «Застосовується до».

Попередження. Цю статтю переведено автоматично

Властивості

Ідентифікатор статті: 2878968 – останній перегляд: 04/22/2014 07:37:00 – виправлення: 5.0

Microsoft SQL Server 2008 Service Pack 3, 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, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Standard

  • kbqfe kbfix kbsurveynew kbexpertiseadvanced kbmt KB2878968 KbMtuk
Зворотний зв’язок