Sintomas

Considere o seguinte cenário:

  • Você tem um banco de dados do Microsoft SQL Server 2012 com as opções ALLOW_SNAPSHOT_ISOLATION e READ_COMMITTED_SNAPSHOT habilitada.

  • Você tem pelo menos três consultas simultâneas executadas na mesma tabela.

  • As consultas usam a dica de consulta (TABLOCK, UPDLOCK) .

  • Cada consulta é empacotada em uma instrução BEGIN TRAN explícita, mas a instrução Commit Tran não é executada.

Quando a primeira consulta for confirmada nesse cenário, uma das outras consultas será bloqueada. Quando READ_COMMITTED_SNAPSHOT é habilitado juntamente com as dicas de consulta TABLOCK e UPDLOCK , as sessões levam a IX Locks na tabela. O deadlock ocorre quando as duas sessões simultâneas tentam converter os bloqueios do IX para o X Locks ao mesmo tempo. Se READ_COMMITTED_SNAPSHOT estiver desabilitada, as sessões obterão seis bloqueios que não serão bloqueados quando forem convertidos em bloqueios X. O hotfix corrige esse comportamento ao conceder bloqueios LCK_M_SCH_S em vez de IX Locks quando READ_COMMITTED_SNAPSHOT é usado com dicas TABLOCK e UPDLOCK .ObservaçãoEsse problema também ocorre no Microsoft SQL Server 2008 R2. Um hotfix para SQL Server 2008 R2 será lançado em breve.

Cada nova atualização cumulativa do SQL Server contém todos os hotfixes e todas as correções de segurança incluídas na atualização cumulativa anterior. Confira as atualizações cumulativas mais recentes do SQL Server:

Status

A Microsoft confirmou que este é um problema nos produtos Microsoft listados na seção "Aplicável a".

Precisa de mais ajuda?

Expanda suas habilidades
Explore o treinamento
Obtenha novos recursos primeiro
Ingressar no Microsoft Insider

Essas informações foram úteis?

Qual é o seu grau de satisfação com a qualidade do idioma?
O que afetou sua experiência?

Obrigado pelos seus comentários!

×