KB2929464-FIX: Välj frågor död när ALLOW_SNAPSHOT_ISOLATION och READ_COMMITTED_SNAPSHOT är aktiverade i 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?

Utöka dina kunskaper
Utforska utbildning
Få nya funktioner först
Anslut till Microsoft Insiders

Hade du nytta av den här informationen?

Tack för din feedback!

Tack för din feedback! Det låter som att det kan vara bra att koppla dig till en av våra Office-supportrepresentanter.

×