Problembeschreibung
Wenn Sie eine komplexe Update -Anweisung zusammen mit einem NOLOCK -Hinweis für eine Tabelle in Microsoft SQL Server 2008, SQL Server 2012, SQL Server 2008 R2 oder SQL Server 2014 ausführen, kann eine nicht gruppierte Indexbeschädigung auftreten. Darüber hinaus kann die folgende Fehlermeldung im SQL Server-Fehlerprotokoll protokolliert werden:
<Datum><Uhrzeit> SPID # Fehler: 8646, Schweregrad: 21, Zustand: 1. <Datum><Uhrzeit> SPID # Indexeintrag in der Index-ID 3 der Tabelle 2102402659 in der Datenbank "<DatabaseName>" nicht gefunden. Der angegebene Index ist beschädigt, oder es liegt ein Problem mit dem aktuellen Updateplan vor. Führen Sie DBCC CHECKDB oder DBCC CHECKTABLE aus. Wenn das Problem weiterhin besteht, wenden Sie sich an den Produktsupport. <Datum><Uhrzeit> SPID # using "dbghelp. dll" Version "4.0.5" <Datum><Uhrzeit> SPID # * * Dump Thread-SPID = 0, EC = 0x0000000BD70624C0<Datum><Uhrzeit> SPID # * * * Stack-Dump wird an Y:\MSSQL\MSSQL10. gesendet MSSQLSERVER\MSSQL\LOG\SQLDump0003.txt><2 Datum><Uhrzeit> SPID # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * <Datum><Uhrzeit> SPID # * <Datum><Uhrzeit> SPID # * Stack-Dump starten: <Datum><Uhrzeit> SPID # * <Datum><Uhrzeit> SPID # <Datum><Uhrzeit> SPID # * <Datum><Uhrzeit> SPID # * CPerIndexMetaQS:: ErrorAbort-Index Beschädigung><0 Datum><Uhrzeit> SPID # *
HinweisSie können einen NOLOCK -Hinweis auf Quelltabellen in einer Anweisung anwenden. Es ist jedoch nicht möglich, einen NOLOCK -Hinweis auf Zieltabellen in einer Anweisung anzuwenden.
Ursache
Dieses Problem tritt auf, weil der NOLOCK -Hinweis die Abfrage dazu veranlasst, Werte in der Tabelle falsch zu lesen, wenn die Abfrage dieselben Werte mehrmals liest.
Fehlerbehebung
Das Problem wurde zuerst im folgenden kumulativen Update von SQL Server behoben.
Kumulatives Update 1 für SQL Server 2014 /en-us/help/2931693
Kumulatives Update 11 für SQL Server 2012 /en-us/help/2908007
Kumulatives Update 7 für SQL Server 2012 SP1 /en-us/help/2894115
Kumulatives Update 13 für SQL Server 2008 SP3 /en-us/help/2880350
Kumulatives Update 9 für SQL Server 2008 R2 SP2 /en-us/help/2887606
Jedes neue kumulative Update für SQL Server enthält alle Hotfixes und alle Sicherheitsupdates, die im vorherigen kumulativen Update enthalten waren. Schauen Sie sich die neuesten kumulativen Updates für SQL Server an:
Status
Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.