Aplica-se A
SQL Server 2008 R2 Service Pack 2 SQL Server 2008 R2

Sintomas

Considere o seguinte cenário:

  • Tem uma base de dados que tem as opções ALLOW_SNAPSHOT_ISOLATION e READ_COMMITTED_SNAPSHOT ativadas no Microsoft SQL Server 2008 R2.

  • Executou uma declaração SELECT que contém sugestões tablock e UPDLOCK contra uma tabela na base de dados.

  • A declaração SELECT está embrulhada num TRAN DE INÍCIOexplícito, mas o COMMIT TRAN não é executado.

  • Mais duas das mesmas consultas que são iniciadas com as mesmas dicas de consulta estão na transação explícita.

Neste cenário, quando a primeira consulta for cometida, uma das outras consultas será o impasse.

Causa

O problema ocorre porque o SQL Server relata incorretamente o impasse num dos seguintes cenários:

  • Quando ALLOW_SNAPSHOT_ISOLATION e READ_COMMITTED_SNAPSHOT estiverem ativados para uma base de dados, várias consultas contra a mesma transação podem ser reportadas como um impasse incorretamente quando uma delas estiver concluída.

  • Quando ALLOW_SNAPSHOT_ISOTION estiver ativado e forem utilizadas as sugestões TABLOCK e UPDLOCK, a segunda e terceira declaração SELECT tomam fechaduras IX com a intenção de conversão para X. As fechaduras IX acabam por travar quando é feita uma tentativa de conversão para X.

  • Quando ALLOW_SNAPSHOT_ISOLATION é desativado, a segunda e terceira consultas obterão uma fechadura SEIS. Nesta situação, quando a fechadura SEIS é convertida em X, é apenas um cenário de bloqueio, não um impasse.

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

Estado

A Microsoft confirmou que este problema ocorre nos produtos da Microsoft listados na secção "Aplica-se a".

Precisa de mais ajuda?

Quer mais opções?

Explore os benefícios da subscrição, navegue em cursos de formação, saiba como proteger o seu dispositivo e muito mais.