CORREÇÃO: Rara possibilidade de resultados incorretos quando você usar Option(Recompile) para consultas dentro de um procedimento em 2014 do SQL Server ou SQL Server 2012

Sintomas

Considere o seguinte cenário:

  • Executar um procedimento de 2014 do Microsoft SQL Server ou SQL Server 2012.

  • O procedimento contém uma consulta com as seguintes condições:

    • Ele ingressa em uma tabela que é atualizada com muita frequência.

    • Ele tem uma cláusula WHERE que contém parâmetros.

    • Ele usa Option(Recompile).

  • Esse procedimento é executado em várias conexões simultâneas que têm conjuntos diferentes de valores de parâmetro.

  • O servidor está sob uma carga pesada que está fazendo com que cada um desses procedimentos para levar mais tempo do que o normal.

Nesse cenário, você pode receber resultados incorretos do procedimento que é executado na conexão se forem atendidas as seguintes condições adicionais durante o intervalo de tempo que ocorre entre o fim da compilação de consulta e o início da execução da consulta em sua conexão:

  • Condição 1: outra conexão simultânea faz atualizações para a tabela associada são grandes o suficiente para disparar outra recompilação da consulta na conexão.

  • Condição 2: A mesma consulta foi recompilada de outra conexão e, em seguida, colocar no cache.

Importante: Esta questão de temporização é extremamente raro.

Causa

Esse problema ocorre porque os valores de parâmetro para a consulta foram alterados para valores incorretos depois que você executar a consulta na conexão. Isso ocorre devido a um problema de temporização extremamente raros que existe entre compilações simultâneas.

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


Status

A Microsoft confirma que este é um problema em seus produtos listados na seção "Aplica-se a".

Precisa de mais ajuda?

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

Estas informações foram úteis?

Obrigado por seus comentários!

×