Primenjuje se na
SQL Server 2008 R2 Service Pack 2 SQL Server 2008 R2

Simptomi

Razmotrite sledeći scenario:

  • Imate bazu podataka koja ima opcije za ALLOW_SNAPSHOT_ISOLATION i READ_COMMITTED_SNAPSHOT u sistemu Microsoft SQL Server 2008 R2.

  • U tabeli u bazi podataka pokrenete izvod SELECT koji sadrži tabulatorske i UPDLOCK savete.

  • Izjava SELECT je upakovana u eksplicitni BEGIN TRAN, ali COMMIT TRAN nije izvršen.

  • Još dva ista upita koja su započeta istim nagoveštajima upita su u eksplicitnoj transakciji.

U ovom scenariju, kada se izvrši prvi upit, jedan od ostalih upita će biti ćorsokak.

Uzrok

Do problema dolazi zato što SQL Server netačno prijavljuje zastoj u jednom od sledećih scenarija:

  • Kada ALLOW_SNAPSHOT_ISOLATION iREAD_COMMITTED_SNAPSHOT omogućeni za bazu podataka, više upita u odnosu na istu transakciju može biti netačno prijavljeno kao zastoj kada se jedan od njih dovrši.

  • Kada ALLOW_SNAPSHOT_ISOTION omogućene i koriste se nagoveštaji TABLOCK i UPDLOCK, druga i treća SELECT izjava uzimaju IX brave sa namerom da se konvertuju u X. IX brave završavaju na mrtvoj tački kada se napravi pokušaj konverzije u X.

  • Kada ALLOW_SNAPSHOT_ISOLATION onemogućena, drugi i treći upit će dobiti ŠEST bravu. U ovoj situaciji, kada se SIX brava konvertuje u X, to je samo scenario blokiranja, a ne zastoj.

Svaka nova kumulativna ispravka za SQL Server sadrži sve hitne ispravke i sve bezbednosne ispravke koje su bile uključene u prethodnu kumulativnu ispravku. Pogledajte najnovije kumulativne ispravke za SQL Server:

Status

Microsoft je potvrdio da je ovo problem u Microsoft proizvodima koji su navedeni u odeljku "Odnosi se na".

Da li vam je potrebna dodatna pomoć?

Želite još opcija?

Istražite pogodnosti pretplate, pregledajte kurseve za obuku, saznajte kako da obezbedite uređaj i još mnogo toga.