Symptomen
Wanneer u een complexe Update -instructie samen met een NOLOCK -Hint uitvoert voor een tabel in microsoft SQL Server 2008, SQL Server 2012, SQL Server 2008 R2 of SQL Server 2014, kan de niet-geclusterde indexbeschadiging voorkomen. Daarnaast wordt het volgende foutbericht mogelijk vastgelegd in het foutenlogboek van SQL Server:
<datum><tijd> spid # fout: 8646, Ernst: 21, status: 1. <datum><time> SPID # kon geen indexvermelding vinden in index-id 3, van tabel 2102402659, in de database ' <database naam> '. De aangegeven index is beschadigd of er is een probleem met het huidige update plan. Voer DBCC CHECKDB of DBCC CHECKTABLE uit. Als het probleem zich blijft voordoen, neemt u contact op met productondersteuning. <datum><tijd> SPID # met ' Dbghelp. dll ' versie ' 4.0.5 ' <datum><tijd> SPID # * * dump thread-SPID = 0, EC = 0x0000000BD70624C0<datum><tijd> SPID # * * * stack dump wordt verzonden naar Y:\MSSQL\MSSQL10. MSSQLSERVER\MSSQL\LOG\SQLDump0003.txt><2 datum><tijd> SPID # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * <datum><tijd> SPID # * <datum><tijd> SPID # * BEGIN stack DUMP : <><> tijd <SPID # *><> <time><SPID #> datum<tijd><SPID # *> datum tijdSPID # * CPerIndexMetaQS:: ErrorAbort-index beschadiging><0 datum><tijd> SPID # *
Opmerking U kunt een NOLOCK -Hint toepassen op brontabellen in een instructie. U kunt echter geen NOLOCK- blok Hint toepassen op doeltabellen in een instructie.
Oorzaak
Dit probleem doet zich voor omdat met de hint voor NOLOCK onjuiste waarden in de tabel worden gelezen wanneer de query dezelfde waarden meerdere keren leest.
Oplossing
Het probleem is voor het eerst opgelost in de volgende cumulatieve update van SQL Server.
Cumulatieve update 1 voor SQL Server 2014 /en-us/help/2931693
Cumulatieve update 11 voor SQL Server 2012 /en-us/help/2908007
Cumulatieve update 7 voor SQL Server 2012 SP1 /en-us/help/2894115
Cumulatieve update 13 voor SQL Server 2008 SP3 /en-us/help/2880350
Cumulatieve update 9 voor SQL Server 2008 R2 SP2 /en-us/help/2887606
Elke nieuwe cumulatieve update voor SQL Server bevat alle hotfixes en alle beveiligingsoplossingen die zijn opgenomen in de vorige cumulatieve update. Bekijk de nieuwste cumulatieve updates voor SQL Server:
Status
Microsoft heeft bevestigd dat dit probleem zich kan voordoen in de Microsoft-producten die worden vermeld in de sectie Van toepassing op.