Symptom
När du kör en komplex uppdaterings sats tillsammans med ett NOLOCK -tips mot en tabell i Microsoft SQL Server 2008, SQL Server 2012, SQL Server 2008 R2 eller SQL Server 2014, kan det hända att det inte finns någon klustrad index skada. Dessutom kan följande fel meddelande vara loggat i SQL Server-felloggen:
<- datum><tid> spid # fel: 8646, allvarlighets grad: 21; State: 1. <datum><tid> SPID # det gick inte att hitta index posten i index-ID 3 i tabell 2102402659 i databasen "<databasename>". Det angivna indexet är skadat eller så har det uppstått ett problem med den aktuella uppdaterings planen. Kör DBCC CHECKDB eller DBCC CHECKTABLE. Om problemet kvarstår kontaktar du produkt supporten. <datum><tid> SPID # med "dbghelp. dll ' version ' 4.0.5 ' <datum><Time> SPID # * * dump Thread-SPID = 0; EC = 0x0000000BD70624C0<datum><tid> SPID # * * * stack dump som skickas till Y:\MSSQL\MSSQL10. MSSQLSERVER\MSSQL\LOG\SQLDump0003.txt><2 ><tid> SPID # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * <- Timedatum><Time> SPID # * <datum><- Timetid> spid # * BEGIN stackdump: <datum><tid> SPID # * <datum><tid> SPID = CPerIndexMetaQS ErrorAbort-index><0 Date - datum><tid> SPID # * Date
Obs! Du kan använda ett NOlock -tips för käll tabeller i en instruktion. Du kan däremot inte använda en NOlock -ledtråd för mål tabeller i en instruktion.
Orsak
Det här problemet beror på att frågan på ett felaktigt sätt kan läsa värden i tabellen när frågan läser samma värden flera gånger.
Lösning
Problemet är först åtgärdat i den kumulativa uppdateringen av SQL Server.
Kumulativ uppdatering 1 för SQL Server 2014 /en-us/help/2931693
Kumulativ uppdatering 11 för SQL Server 2012 /en-us/help/2908007
Kumulativ uppdatering 7 för SQL Server 2012 SP1 /en-us/help/2894115
Kumulativ uppdatering 13 för SQL Server 2008 SP3 /en-us/help/2880350
Kumulativ uppdatering 9 för SQL Server 2008 R2 SP2 /en-us/help/2887606
Varje ny kumulativ uppdatering för SQL Server innehåller alla snabb korrigeringar och alla säkerhets korrigeringar som ingick i den föregående kumulativa uppdateringen. Kolla in de senaste kumulativa uppdateringarna för SQL Server:
Status
Microsoft har bekräftat att det här är ett problem i Microsoft-produkterna som nämns i "gäller".