Tünetek
Ha összetett UPDATE utasítást és egy NOLOCK-tippet futtat egy táblán a Microsoft SQL Server 2008-ban, az SQL Server 2012-ben, az SQL Server 2008 R2-ben vagy az SQL Server 2014-ben, nem fürtözött index sérülhet. Emellett a következő hibaüzenet jelenhet meg az SQL Server hibanaplójában:
Megjegyzés
<Dátum><és idő> spid # Hiba: 8646, Súlyosság: 21, Állapot: 1.
<Date><Time> spid # Nem található a tárgymutató-bejegyzés a 2102402659-es tábla 3-as indexazonosítójában, a "<DatabaseName>" adatbázisban. A jelzett index sérült, vagy probléma merült fel az aktuális frissítési tervvel kapcsolatban. Futtassa a DBCC CHECKDB vagy a DBCC CHECKTABLE parancsot. Ha a probléma továbbra is fennáll, forduljon a terméktámogatási szolgálathoz.
<Dátum><és idő> spid # A 'dbghelp.dll' 4.0.5-ös verziójának használata
<Dátum><és idő> spid # **Memóriakép-hozzászóláslánc - spid = 0, EC = 0x0000000BD70624C0
<Dátum><és idő> spid # ***A memóriakép elküldése a következőnek: Y:\MSSQL\MSSQL10.MSSQLSERVER\MSSQL\LOG\SQLDump0003.txt
<Dátum><és idő> spid # * *******************************************************************************
<Dátum><és idő> spid # *
<Date><Time> spid # * STACK DUMP START
<Dátum><és idő> spid # * <Dátum><és idő> spid#
<Dátum><és idő> spid # *
<Date><Time> spid # * CPerIndexMetaQS::ErrorAbort - Index corruption
<Dátum><és idő> spid # *
Megjegyzés: Az utasításokban NOLOCK-tippeket alkalmazhat a forrástáblákra. Az utasításokban azonban nem használhat NOLOCK-tippet a céltáblákra.
Ok
A problémát az okozza, hogy a NOLOCK-tipp miatt a lekérdezés helytelenül olvassa be a tábla értékeit, amikor a lekérdezés ugyanazokat az értékeket többször is beolvasta.
Megoldás
A hibát először az SQL Server következő összegző frissítésében javítottuk.
1. összegző frissítés a SQL Server 2014-hez /en-us/help/2931693
11. összegző frissítés a SQL Server 2012-höz /en-us/help/2908007
7. összegző frissítés a SQL Server 2012 SP1 rendszerhez /en-us/help/2894115
13-as összegző frissítés a SQL Server 2008 SP3 verzióhoz /en-us/help/2880350
9-es összegző frissítés a SQL Server 2008 R2 SP2 rendszerhez /en-us/help/2887606
Az SQL Server összegző frissítéseinek ismertetése
Az SQL Server minden új összegző frissítése tartalmazza az összes gyorsjavítást és minden biztonsági javítást, amely az előző kumulatív frissítésben szerepelt. Tekintse meg az SQL Server legújabb összegző frissítéseit:
- Az SQL Server 2014 legújabb összegző frissítése
- Az SQL Server 2012 legújabb összegző frissítése
- Az SQL Server 2012 SP1 legújabb összegző frissítése
- Az SQL Server 2008 R2 SP2 legújabb összegző frissítése
- Az SQL Server 2008 SP3 legújabb összegző frissítése
Állapot
A Microsoft megerősítette, hogy ez egy olyan probléma a Microsoft-termékekben, amely az „Érintett szolgáltatás“ című szakaszban van felsorolva.