Ознаки
Коли ви запускаєте інструкцію комплексного оновлення разом із підказкою NOLOCK на таблиці в Microsoft SQL Server 2008, SQL Server 2012, SQL Server 2008 R2 або SQL Server 2014, може виникнути некластерне пошкодження індексу. Крім того, у журналі помилок SQL Server може бути записано таке повідомлення про помилку:
<дата><час> SPID # помилка: 8646, серйозність: 21, стан: 1. <дата><час> SPID # не вдалося виявити елемент індексу в ідентифікаторі ідентифікаторів 3, у таблиці 2102402659, у базі даних "<DatabaseName>". Указаний індекс пошкоджений, або виникла проблема з поточним планом оновлення. Запустіть службу "DBCC CHECKDB" або "DBCC CHECKDB". Якщо проблема не зникне, зверніться до служби підтримки продуктів. <дата><час> SPID # за допомогою "dbghelp. dll" version ' 4.0.5 ' <дата><час> SPID # * * ДАМП потоку-SPID = 0, EC = 0x0000000BD70624C0<дата><час> SPID # * * * * дамп стека направляється в y:\mssql\mssql10. Mssqlsers\mssql\log\sqldu0003. txt><2 дата><час> SPID # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * <дата><час> spid # * <дата><час> spid # * початок стека дамп: <дата><час> SPID # * <дата><час> SPID # <дата><час> SPID # * <дата><час> SPID # * cinperіндексування метаqs:: errort-індекс корупції><0 дата><час> SPID # *
Примітка.Ви можете додати підказку NOLOCK до вихідних таблиць у операторі. Проте не можна використовувати підказку NOLOCK для цільових таблиць у операторі.
Причина
Ця проблема виникає через те, що підказку NOLOCK спричиняє неправильне прочитання значень у таблиці, коли запит зчитує однакові значення кілька разів.
Спосіб вирішення
Ця проблема була спочатку зафіксоване в цьому сукупному оновленні сервера SQL Server.
Сукупне оновлення 1 для SQL Server 2014 /en-us/help/2931693
Сукупне оновлення 11 для SQL Server 2012 /en-us/help/2908007
Сукупне оновлення 7 для SQL Server 2012 SP1 /en-us/help/2894115
Сукупне оновлення 13 для SQL Server 2008 SP3 /en-us/help/2880350
Сукупне оновлення 9 для SQL Server 2008 R2 SP2 /en-us/help/2887606
Кожне нове Сукупне оновлення для SQL Server містить усі поточні виправлення та всі виправлення системи безпеки, які були включені до попереднього сукупного оновлення. Ознайомтеся з найновішими сукупними оновленнями для сервера SQL Server:
Стан
Корпорація Майкрософт підтвердила, що це проблема в продуктах Microsoft, перелічених у розділі "застосовується до".