Simptomi
Ja palaižat sarežģītu atjaunināšanas priekšrakstu kopā ar NOLOCK atgādinājumu par tabulu programmā Microsoft SQL Server 2008, SQL Server 2012, SQL Server 2008 R2 vai SQL Server 2014, var rasties nesagrupēti indeksa bojājumi. Turklāt SQL Server kļūdu žurnālā var tikt parādīts šāds kļūdas ziņojums:
<datums><laiks> spid # Error: 8646, nopietnība: 21, rajons: 1. <datuma><laiks> SPID # nevar atrast indeksa ievadni indeksa ID 3, no tabulas 2102402659, datu bāzes "<databasename>". Norādītais indekss ir bojāts, vai ir radusies problēma ar pašreizējo atjaunināšanas plānu. Palaidiet DBCC CHECKDB vai DBCC CHECKTABLE. Ja problēma joprojām pastāv, sazinieties ar produktu atbalsta dienestu. <datums><laiku> SPID #, izmantojot "dbghelp. dll" versija "4.0.5" <datuma><laiku> SPID # * * dump thread-SPID = 0, EC = 0x0000000BD70624C0<datuma><laiks> SPID # * * * MSSQLSERVER\MSSQL\LOG\SQLDump0003.txt><2 datumu><laiku> SPID # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * <datums TimeTime>< laiku >< SPID # * > datums<laiks><SPID # *. CPerIndexMetaQS :>s datuma <s ......... >><datums> laiku< ErrorAbort-index korupcijas><0 datums><laiku> SPID # *
Piezīme.Priekšrakstam avota tabulām varat lietot NOLOCK atgādinājumu. Tomēr nevar lietot NOLOCK atgādinājumu, lai pieteiktos tabulās.
Cēlonis
Šī problēma rodas tāpēc, ka NOLOCK Hint liek vaicājumam nepareizi lasīt vērtības tabulā, ja vaicājumā nolasa tās pašas vērtības vairākas reizes.
Risinājums
Šī problēma pirmo reizi tika izlabota tālāk sniegtajā SQL Server kumulatīvajā atjauninājumā.
Kumulatīvais atjauninājums 1 SQL Server 2014 /en-us/help/2931693
Kumulatīvais atjauninājums 11 SQL Server 2012 /en-us/help/2908007
Kumulatīvais atjauninājums 7 SQL Server 2012 SP1 /en-us/help/2894115
Kumulatīvais atjauninājums 13 SQL Server 2008 SP3 /en-us/help/2880350
Kumulatīvais atjauninājums 9 SQL Server 2008 R2 SP2 /en-us/help/2887606
Katrā jaunajā kumulatīvajā SQL Server atjauninājumā ir iekļauti visi labojumfaili un visi drošības labojumi, kas bija iekļauti iepriekšējā kumulatīvajā atjauninājumā. Skatiet jaunākos kumulatīvos atjauninājumus SQL Server:
Statusa
Microsoft ir apstiprinājusi, ka šī problēma pastāv Microsoft produktos, kas ir norādīti sadaļā "attiecas uz".