Отнася се за
SQL Server 2008 R2 Service Pack 2 SQL Server 2008 R2

Симптоми

Обмислете следния сценарий:

  • Имате база данни с опции ALLOW_SNAPSHOT_ISOLATION и READ_COMMITTED_SNAPSHOT разрешени в Microsoft SQL Server 2008 R2.

  • Изпълнявате командата Select , която съдържа TABLOCK и UPDLOCK загатвания за таблица в базата данни.

  • Командата Select е увита в изрично започва трън, но извършването на тран не се изпълнява.

  • Още две от същите заявки, които са започнати със същите намеци за заявки, са в изричната транзакция.

При този сценарий, когато е извършено първото заявка, една от другите заявки ще бъде безизходица.

Причина

Проблемът възниква, защото неправилно съобщава SQL Server в един от следните сценарии:

  • Когато ALLOW_SNAPSHOT_ISOLATION и READ_COMMITTED_SNAPSHOT са разрешени за база данни, множество заявки спрямо една и съща транзакция могат да бъдат докладвани като неправилни неразрешени случаи, когато една от тях е завършена.

  • Когато ALLOW_SNAPSHOT_ISOTION е разрешена и се използват намеците TABLOCK и UPDLOCK , втората и третата инструкция за избиране заемат IX брави с намерението да се конвертират в X. Бутонът IX блокира, когато е направен опит за преобразуване в X.

  • Когато ALLOW_SNAPSHOT_ISOLATION е забранена, втората и третата заявка ще получат шест Lock. В този случай, когато SIX Lock бъде конвертиран в X, това е само блокиращ сценарий, а не безизходица.

Всяка нова сборна актуализация за SQL Server съдържа всички поправки и всички корекции на защитата, които са били включени в предишната сборна актуализация. Вижте последните сборни актуализации за SQL Server:

Състоянието

Microsoft потвърди, че това е проблем в продуктите на Microsoft, които са посочени в секцията "важи за".

Нуждаете ли се от още помощ?

Искате ли още опции?

Разгледайте ползите от абонамента, прегледайте курсовете за обучение, научете как да защитите устройството си и още.