Dotyczy
SQL Server 2008 R2 Service Pack 2 SQL Server 2008 R2

Symptomy

Rozpatrzmy następujący scenariusz:

  • Masz bazę danych zawierającą opcje ALLOW_SNAPSHOT_ISOLATION i READ_COMMITTED_SNAPSHOT włączone w programie Microsoft SQL Server 2008 R2.

  • Uruchamiamy instrukcję SELECT zawierającą wskazówki TABLOCK i UPDLOCK względem tabeli w bazie danych.

  • Instrukcja SELECT jest zawijana w jawnej instrukcji BEGIN, ale polecenie commit przeliczanie nie jest wykonywane.

  • Dwie więcej z tych samych zapytań, które są uruchamiane z tymi samymi wskazówkami dotyczącymi kwerend, znajdują się w transakcji jawnej.

W tym scenariuszu podczas zatwierdzania pierwszego zapytania jedna z pozostałych zapytań będzie zakleszczenia.

Przyczyna

Ten problem występuje, ponieważ program SQL Server niepoprawnie informuje o zakleszczeniu w jednym z następujących scenariuszy:

  • Gdy ALLOW_SNAPSHOT_ISOLATION i READ_COMMITTED_SNAPSHOT są włączone dla bazy danych, wiele zapytań dotyczących tej samej transakcji może zostać błędnie zgłoszona jako zakleszczenie po zakończeniu jednego z nich.

  • Gdy jest włączony ALLOW_SNAPSHOT_ISOTION i użyto wskazówek TABLOCK i UPDLOCK , druga i trzecia instrukcja SELECT przyjmuje IX blokada z zamiarem konwersji na X. Gdy zostanie podjęta próba konwersji na znak X, blokada IX zakończy zakleszczenie.

  • Gdy ALLOW_SNAPSHOT_ISOLATION jest wyłączone, druga i trzecia kwerenda uzyska sześć blokad. W takiej sytuacji po przekonwertowaniu sześciu blokad na X jest to tylko scenariusz blokowania, a nie zakleszczenie.

Każda nowa Zbiorcza aktualizacja programu SQL Server zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń uwzględnione w poprzedniej aktualizacji zbiorczej. Zapoznaj się z najnowszymi aktualizacjami zbiorczymi dla programu SQL Server:

Stan

Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji "dotyczy".

Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.