KB2545989 – ÅTGÄRDAT: Felet "En timeout uppstod i väntan på buffertspärr" när många transaktioner samtidigt uppdaterar en databas i SQL Server 2008 R2 eller i SQL Server 2008 om databasen använder isoleringsnivån för ögonblicksbilder

Gäller för
SQL Server 2008 R2 Datacenter SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Parallel Data Warehouse SQL Server 2008 Developer SQL Server 2008 Enterprise

Microsoft distribuerar Microsoft SQL Server 2008 R2 eller Microsoft SQL Server 2008-korrigeringar som en nedladdningsbar fil. Eftersom korrigeringarna är kumulativa innehåller varje ny version alla snabbkorrigeringar och alla säkerhetskorrigeringar som ingick i den tidigare korrigeringsversionen för SQL Server 2008 R2 eller SQL Server 2008.

Symptom

Tänk dig följande scenario:

  • Du aktiverar funktionen för versionshantering av rader i en databas i SQL Server 2008 R2 eller SQL Server 2008.
  • Du konfigurerar databasen så att den använder isoleringsnivån för ögonblicksbilder.
  • Du kör många transaktioner som uppdaterar databasen samtidigt.

I det här scenariot loggas felmeddelanden som liknar följande i felloggfilen för SQL Server.

Felmeddelande 1

Obs

<Datum><SPID> En timeout inträffade i väntan på buffertspärr – typ 2, bp 0000003DDEFCBC80, sidan 3:58642854, stat 0xc0000b, databas-ID: 6, ID för allokeringsenhet: 72057594048806912, aktivitet 0x000000717CC2A748 0, väntetid 300, flaggor 0x3a, ägande aktivitet 0x00000062F0A6CE08. Fortsätter inte att vänta.

Felmeddelande 2

Obs

<Datum><SPID> Timeout inträffade i väntan på lås: klass 'APPEND_ONLY_STORAGE_FIRST_ALLOC', ID 0000006196214E30, typ 4, aktivitet 0x000000002CA45948 : 0, väntetid 300, flaggor 0x1a, ägande aktivitet 0x00000062F0533288. Fortsätter att vänta.

Felmeddelande 3

Obs

<Datum> spid#,Okänd,Fel: 845<c/> Allvarlighetsgrad: 17<c/> Tillstånd: 1.

Orsak

Det här problemet uppstår eftersom formateringen av versionsarkivsidorna påbörjas efter allokeringen. Sidorna är dock låsta. Därför uppstår hög konkurrens om sidor.

Lösning

Information om kumulativ uppdatering

SQL Server 2008 Service Pack 3

Korrigeringen för det här problemet släpptes först i kumulativ uppdatering 4 för SQL Server 2008 Service Pack 3. Om du vill veta mer om det här kumulativa uppdateringspaketet klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:

2673383 Kumulativ uppdatering paket 4 för SQL Server 2008 Service Pack 3Note Eftersom versionerna är kumulativa innehåller varje ny korrigeringsversion alla snabbkorrigeringar och säkerhetskorrigeringar som ingick i den tidigare SQL Server 2008-korrigeringsversionen. Microsoft rekommenderar att du installerar den senaste korrigeringsversionen som innehåller den här snabbkorrigeringen. Mer information om hur du åtgärdar det här problemet får du om du klickar på följande artikelnummer i Microsoft Knowledge Base:

2629969 Snabbkorrigeringar för SQL Server 2008 som släpptes efter att SQL Server 2008 Service Pack 3 släpptes Snabbkorrigeringar för Microsoft SQL Server 2008 skapas för särskilda SQL Server Service Pack-versioner. Du måste använda en snabbkorrigering för SQL Server 2008 Service Pack 3 på en installation av SQL Server 2008 Service Pack 3. Som standard ingår snabbkorrigeringar i en SQL Server Service Pack i nästa SQL Server Service Pack.

SQL Server 2008 R2 Service Pack 1

Korrigeringen för det här problemet släpptes först i kumulativ uppdatering 1 för SQL Server 2008 R2 Service Pack 1. Om du vill veta mer om hur du hämtar det här kumulativa uppdateringspaketet klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:

2544793 kumulativt uppdateringspaket 1 för SQL Server 2008 R2 Service Pack 1Note Eftersom versionerna är kumulativa innehåller varje ny korrigeringsversion alla snabbkorrigeringar och säkerhetskorrigeringar som ingick i den tidigare SQL Server 2008 R2-korrigeringsversionen. Vi rekommenderar att du installerar den senaste snabbkorrigeringen som innehåller den här snabbkorrigeringen. Mer information om hur du åtgärdar det här problemet får du om du klickar på följande artikelnummer i Microsoft Knowledge Base:

2567616 SQL Server 2008 R2-versionerna som släpptes efter att SQL Server 2008 R2 Service Pack 1 släpptes

SQL Server 2008 R2

Korrigeringen för det här problemet släpptes först i kumulativ uppdatering 8. Om du vill veta mer om hur du hämtar det här kumulativa uppdateringspaketet för SQL Server 2008 R2 klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:

2534352 Kumulativt uppdateringspaket 8 för SQL Server 2008 R2 Obs! Eftersom versionerna är kumulativa innehåller varje ny korrigeringsversion alla snabbkorrigeringar och säkerhetskorrigeringar som ingick i den tidigare SQL Server 2008 R2-korrigeringsversionen. Vi rekommenderar att du installerar den senaste snabbkorrigeringen som innehåller den här snabbkorrigeringen. Mer information om hur du åtgärdar det här problemet får du om du klickar på följande artikelnummer i Microsoft Knowledge Base:

981356 De SQL Server 2008 R2-versionerna som släpptes efter att SQL Server 2008 R2 släpptes

Status

Microsoft har bekräftat att detta är ett problem i de Microsoft-produkter som anges i avsnittet "Gäller".

Mer information

Det här problemet kanske inte uppstår om du ökar antalet datafiler för Tempdb-databasen för att maximera diskbandbredden. Mer information om hur du åtgärdar det här problemet får du om du klickar på följande artikelnummer i Microsoft Knowledge Base:

2154845 Rekommendationer för att minska allokeringskonkurrationen i SQL Server tempdb-databas

Referenser

Mer information om radversionsbaserade isoleringsnivåer finns på följande MSDN-webbplats:

Allmän information om isoleringsnivåer baserade på radversionshantering
Om du vill veta mer om modellen för inkrementell service för SQL Server klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:

935897 En stegvis servicemodell är tillgänglig från SQL Server-teamet för att leverera snabbkorrigeringar för rapporterade problem

Om du vill veta mer om namnschemat för SQL Server uppdateringar klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:

822499 Nytt namnschema för Microsoft SQL Server programuppdateringspaketOm du vill veta mer om terminologi för programvaruuppdateringar klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:

824684 Beskrivning av standardterminologin som används för att beskriva Microsofts programuppdateringar