Symptomer
Tenk deg følgende:
-
Du har en database som har alternativene ALLOW_SNAPSHOT_ISOLATION og READ_COMMITTED_SNAPSHOT som er aktivert i Microsoft SQL Server 2008 R2.
-
Du kan kjøre en SELECT -setning som inneholder TABLOCK og UPDLOCK tips mot en tabell i databasen.
-
SELECT -setning som er pakket i en eksplisitt BEGYNNER TRAN, men Utfør TRAN utføres ikke.
-
Det er to mer av samme spørringene som er i gang med de samme spørringen tipsene i den eksplisitte transaksjonen.
Når den første spørringen er utført, være en av de andre spørringene i dette scenariet vranglås.
Årsak
Dette problemet oppstår fordi SQL Server rapporterer feilaktig vranglås i ett av følgende scenarier:
-
Når ALLOW_SNAPSHOT_ISOLATION og READ_COMMITTED_SNAPSHOT er aktivert for en database, kan flere spørringer mot den samme transaksjonen rapporteres som låst feil når ett av dem er fullført.
-
Når ALLOW_SNAPSHOT_ISOTION er aktivert og brukes tips TABLOCK og UPDLOCK , andre og tredje SELECT -setningen, Utfør IX låser med formålet å konvertere til X. IX låses slutten deadlocking når det gjøres et forsøk på å konvertere til X.
-
Når ALLOW_SNAPSHOT_ISOLATION er deaktivert, vil de andre og tredje spørringene få SEKS låsing. Når SEKS låsen er konvertert til X, i så fall er det bare et blokkerende scenario, ikke en vranglås.
Oppløsning
Problemet ble først løst i den følgende kumulative oppdateringen av SQL Server.
Etter at du har installert hurtigreparasjonen, løse problemet ved å registrere Hvis det finnes en LESER utføre tips eller NOLOCK tips for databasen og spørring i SQL Server. Denne informasjonen brukes til å velge den riktige typen låser til å håndtere situasjonen på riktig måte, i stedet for feil rapporten vranglås.
Kumulativ oppdatering 11 for SQL Server 2008 R2 SP2/en-us/help/2926028
Hver nye kumulative oppdateringen for SQL Server inneholder alle hurtigreparasjonene og alle sikkerhetsreparasjoner som fulgte med den forrige kumulative oppdateringen. Sjekk ut de nyeste kumulative oppdateringene for SQL Server:
Status
Microsoft har bekreftet at dette er et problem i Microsoft-produktene som er oppført i delen "Gjelder for".