Simptomi
Kada pokrenete kompleksnu naredbu za Ažuriranje uz podsjetnik za nolock u TABLICI u programu Microsoft SQL Server 2008, SQL Server 2012, SQL Server 2008 R2 ili SQL Server 2014, može doći do negrupiranog indeksa korupcije. Uz to, u zapisniku pogreške sustava SQL Server moguće je prijaviti sljedeću poruku o pogrešci:
<datum><vremena> spid # pogreška: 8646, težina: 21, stanje: 1. <Datum><vrijeme> spid # nije moguće pronaći unos indeksa u ID-u indeksa 3, tablice 2102402659, u bazi podataka ' <DATABASENAME> '. Navedeni je indeks oštećen ili postoji problem s trenutnim tarifa za ažuriranje. Trčanje DBCC CHECKDB ili DBCC CHECKTABLE. Ako se problem i dalje pojavljuje, obratite se podršci za proizvode. <datum><vrijeme> spid # pomoću ' DBGHELP. dll ' verzija ' 4.0.5 ' <Datum><vremena> spid # * * dump Thread-spid = 0, EZ = 0x0000000BD70624C0<Datum><vrijeme> spid # * * * stog dump se šalje u Y:\MSSQL\MSSQL10. MSSQLSERVER\MSSQL\LOG\SQLDump0003.txt><2 datum><vrijeme> spid # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * <Datum><vrijeme> spid # * <Datum><vrijeme> spid # * Počnite s izvatkom iz stog: <Datum><vremena> spid # * <Datum><vremenu> spid # <Datum><vrijeme> spid # * <Datum><vrijeme> spid # * cperindexmetaqs:: errorpobačaj – Indeks korupcije><0 datuma><vremena> spid # *
NapomenaPodsjetnik za Nolock možete primijeniti na izvorne tablice u izjavi. Međutim, ne možete primijeniti mig za Nolock da biste ciljali tablice u izjavi.
Uzrok
Taj se problem pojavljuje jer nagovještaj Nolock uzrokuje da upit pogrešno pročita vrijednosti u tablici kada upit čita iste vrijednosti više puta.
Rješenje
Problem je prvi put riješen u sljedećem kumulativnom ažuriranju sustava SQL Server.
Kumulativno ažuriranje 1 za SQL Server 2014 /en-us/help/2931693
Kumulativno ažuriranje 11 za SQL Server 2012 /en-us/help/2908007
Kumulativno ažuriranje 7 za SQL Server 2012 SP1 /en-us/help/2894115
Kumulativno ažuriranje 13 za SQL Server 2008 SP3 /en-us/help/2880350
Kumulativno ažuriranje 9 za SQL Server 2008 R2 SP2 /en-us/help/2887606
Svako novo Kumulativno ažuriranje za SQL Server sadrži sve hitne popravke i sve sigurnosne ispravke uključene u prethodno Kumulativno ažuriranje. Pogledajte najnovija kumulativna ažuriranja za SQL Server:
Status
Microsoft je potvrdio da se radi o problemu u Microsoftovim proizvodima navedenim u odjeljku "odnosi se na".