Gäller förSQL Server 2008 R2 Service Pack 2 SQL Server 2008 R2

Symptom

Tänk dig följande situation:

  • Du har en databas som innehåller alternativen ALLOW_SNAPSHOT_ISOLATION och READ_COMMITTED_SNAPSHOT aktive rad i Microsoft SQL Server 2008 R2.

  • Du kör ett Select -uttryck som innehåller TABLOCK -och UPDLOCK -tips mot en tabell i databasen.

  • Select -uttrycket är inkapslat i en explicit påbörjaomlastning men commit omlastning utförs inte.

  • Två av de frågor som startas med samma frågeuttryck är i den explicita transaktionen.

I det här scenariot kommer en av de andra frågorna att vara död när den första frågan är bekräftad.

Orsak

Problemet uppstår eftersom SQL Server rapportera död läge i något av följande fall:

  • När ALLOW_SNAPSHOT_ISOLATION och READ_COMMITTED_SNAPSHOT är aktiverade för en databas kan flera frågor mot samma transaktion rapporteras som död när en av dem är klar.

  • När ALLOW_SNAPSHOT_ISOTION är aktiverat och tipsen TABLOCK och UPDLOCK används, tar det andra och tredje Select -uttrycket IX lås med avsikt att konvertera till X. I 9 låses död lägen när ett försök görs att konvertera till X.

  • När ALLOW_SNAPSHOT_ISOLATION är inaktiverat får de andra och tredje frågorna ett sex lås. Om det sex låset konverteras till X är det bara ett block scenario, inte ett död läge.

Varje ny kumulativ uppdatering för SQL Server innehåller alla snabb korrigeringar och alla säkerhets korrigeringar som ingick i den föregående kumulativa uppdateringen. Kolla in de senaste kumulativa uppdateringarna för SQL Server:

Status

Microsoft har bekräftat att det här är ett problem i Microsoft-produkterna som nämns i "gäller".

Behöver du mer hjälp?

Vill du ha fler alternativ?

Utforska prenumerationsförmåner, bläddra bland utbildningskurser, lär dig hur du skyddar din enhet med mera.