Symptom
Tänk dig följande scenario:
- Du kör en ALTER INDEX ... ONLINE-fråga i Microsoft SQL Server 2012 eller SQL Server 2014.
- Den här frågan avbryts antingen på grund av en deadlock eller på grund av en användarinitierad åtgärd, till exempel körning av ett kill-kommando eller avbrytande av frågan.
I det här scenariot blockeras alla DML-åtgärder som måste använda indexmetadata eller så tar det lång tid att slutföra.
Dessutom kan du uppleva följande symptom:
- Förhöjda värden för väntetypen PWAIT_MD_RELATION_CACHE eller MD_LAZYCACHE_RWLOCK när du frågar sys.dm_os_wait_stats och sys.dm_exec_requests dynamiska hanteringsvyer (DMV)
- Förhöjda värden för SOS_RW väntetyp när du frågar sys.dm_os_spinlock_stats DMV
Det här problemet observeras vanligtvis som en slusskonvoj som uppstår när varje ny DML-fråga långsamt rensar synkroniseringsobjekten. På grund av synkroniseringsobjektens väntande natur är CPU-användningen vanligtvis begränsad.
Lösning
Information om kumulativ uppdatering
Problemet åtgärdades först i följande kumulativa uppdatering av SQL Server.
Kumulativ uppdatering 1 för SQL Server 2014 /en-us/help/2931693
Kumulativ uppdatering 9 för SQL Server 2012 SP1 /en-us/help/2931078
Om kumulativa uppdateringar för SQL Server
Varje ny kumulativ uppdatering för SQL Server innehåller alla snabbkorrigeringar och alla säkerhetskorrigeringar som ingick i den tidigare kumulativa uppdateringen. Kolla in de senaste kumulativa uppdateringarna för SQL Server:
- Senaste kumulativa uppdateringen för SQL Server 2014
- Senaste kumulativa uppdateringen för SQL Server 2012 SP1
Information om snabbkorrigeringar
En snabbkorrigering som stöds är tillgänglig från Microsoft. Den här snabbkorrigeringen är dock endast avsedd att åtgärda det problem som beskrivs i den här artikeln. Använd endast den här snabbkorrigeringen på system som har det här specifika problemet.
Om snabbkorrigeringen kan laddas ned finns avsnittet "Nedladdning av snabbkorrigering" längst upp i den här kunskapsbasartikeln. Om det här avsnittet inte visas skickar du en förfrågan till Microsofts kundtjänst och support för att hämta snabbkorrigeringen.
Om ytterligare problem uppstår eller om någon felsökning krävs kan du behöva skapa en separat servicebegäran. Normala supportkostnader tas ut för ytterligare supportfrågor och problem som inte kvalificerar sig för den här specifika snabbkorrigeringen. En fullständig lista över telefonnummer till Microsofts kundtjänst och support eller om du vill skapa en separat servicebegäran finns på följande Microsoft-webbplats:
/contactus/?ws=support Obs! Formuläret "Nedladdning av snabbkorrigering tillgänglig" visar de språk som snabbkorrigeringen är tillgänglig för. Om ditt språk inte visas beror det på att det inte finns någon snabbkorrigering för det språket.
Viktigt! När du har installerat den här snabbkorrigeringen är ALTER INDEX ... ONLINE-fråga kan avbrytas utan att minska prestandan för SQL Server.
Lösning
För att kringgå det här problemet kan du rensa metadataposten för att förhindra låskonvojen och potentiella omkompileringscykler som försämrar frågeprestandan. Det gör du genom att använda någon av följande metoder för att rensa metadataposten:
- Starta om instansen av SQL Server 2012 eller SQL Server 2014.
- Försätt den problematiska databasen i offlineläge och ta den sedan online igen.
Status
Microsoft har bekräftat att detta är ett problem i de Microsoft-produkter som anges i avsnittet "Gäller".