A Microsoft distribui correções do Microsoft SQL Server 2008 R2 Service Pack 1 (SP1) ou do Microsoft SQL Server 2012 em um arquivo para download. Como as correções são cumulativas, cada nova versão contém todos os hotfixes e todas as atualizações de segurança incluídas com a versão de atualização anterior do SQL Server 2008 R2 Service Pack 1 (SP1) ou do Microsoft SQL Server 2012.
Sintomas
Considere o seguinte cenário:
- Você atualiza do Microsoft SQL Server 2005 para o Microsoft SQL Server 2008 ou para o Microsoft SQL Server 2008 R2 ou para o Microsoft SQL Server 2012.
- Você executa uma consulta que usa o procedimento armazenado sp_cursoropen e, em seguida, especifica o parâmetro rowcount para buscar as primeiras linhas de uma tabela.
Nesse cenário, o desempenho pode ser mais lento do que se você executar a mesma consulta no SQL Server 2005.
Causa
Esse problema ocorre porque o otimizador de consultas usa um plano de cursor estático em vez de um plano de cursor dinâmico. Para um plano de cursor estático, o SQL Server busca todas as linhas e as insere na tabela de trabalho do cursor. No entanto, para um plano de cursor dinâmico, o SQL Server busca apenas as linhas necessárias.
Resolução
Informações sobre a atualização cumulativa
SQL Server 2012
A correção para esse problema foi lançada pela primeira vez na Atualização Cumulativa 1 para o SQL Server 2012. Para obter mais informações sobre esse pacote de atualização cumulativa, clique no número abaixo para ler o artigo na Base de Dados de Conhecimento Microsoft:
2679368 Pacote de atualizações cumulativas 1 para SQL Server 2012Observação: como os builds são cumulativos, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança incluídas na versão de correção anterior SQL Server 2012. A Microsoft recomenda que você considere aplicar a versão de correção mais recente que contém esse hotfix. Para obter mais informações, clique no número abaixo para ler o artigo da Base de Dados de Conhecimento Microsoft:
2692828 As SQL Server builds de 2012 lançadas após o lançamento do SQL Server 2012 Você deve aplicar um hotfix do SQL Server 2012 a uma instalação do SQL Server 2012.
Pacote de atualização cumulativa 5 para SQL Server 2008 R2 SP1
Depois de aplicar esse hotfix, habilite o sinalizador de rastreamento 4199.
A correção para esse problema foi lançada pela primeira vez na Atualização Cumulativa 5. Para obter mais informações sobre como obter esse pacote de atualizações cumulativas para o SQL Server 2008 R2 SP1, clique no número abaixo para ler o artigo na Base de Dados de Conhecimento Microsoft:
2659694 Pacote de atualizações cumulativas 5 para o SQL Server 2008 R2 SP1Observação: como os builds são cumulativos, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança incluídas na versão de correção anterior do SQL Server 2008 R2 SP1. Recomendamos que você considere aplicar a versão de correção mais recente que contém esse hotfix. Para obter mais informações, clique no número abaixo para ler o artigo da Base de Dados de Conhecimento Microsoft:
2567616 As compilações do SQL Server 2008 R2 lançadas após o lançamento do SQL Server 2008 R2 SP1
Solução alternativa
Para contornar esse problema, adicione a dica de consulta FAST à consulta.
Mais informações
Para obter mais informações sobre como usar dicas de consulta, visite o seguinte site do MSDN:
Informações gerais sobre como usar dicas de consulta Para obter mais informações sobre o sinalizador de rastreamento 4199, visite o seguinte site:
Informações gerais sobre o sinalizador de rastreamento 4199
Status
A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na seção "Aplica-se a".